<?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>78324</bug_id>
          
          <creation_ts>2012-02-09 21:23:58 -0800</creation_ts>
          <short_desc>Get rid of the LocalizationStrategy</short_desc>
          <delta_ts>2012-02-21 11:29:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ap</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>james.cooley</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kling</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>553796</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-09 21:23:58 -0800</bug_when>
    <thetext>Today, all the localized string come from LocalizationStrategy.

From there we get an instance of LocalizationStrategy, and call the right virtual method.

Adding a string require at least 6 files just to add the translation.

The only platform needing LocalizationStrategy is Qt. I have the feeling we could greatly simplify this by just having a different cpp file for the handful of string Qt needs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554505</commentid>
    <comment_count>1</comment_count>
      <attachid>126606</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-10 16:56:56 -0800</bug_when>
    <thetext>Created attachment 126606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554507</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-10 16:58:15 -0800</bug_when>
    <thetext>This is a first attempt for the bots. This is a massive amount of cleaning :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554526</commentid>
    <comment_count>3</comment_count>
      <attachid>126610</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-10 17:57:28 -0800</bug_when>
    <thetext>Created attachment 126610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554529</commentid>
    <comment_count>4</comment_count>
      <attachid>126610</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 18:13:00 -0800</bug_when>
    <thetext>Comment on attachment 126610
Patch

Attachment 126610 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11496601</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554686</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-02-11 13:46:32 -0800</bug_when>
    <thetext>Great! I have been meaning to get around to doing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554693</commentid>
    <comment_count>6</comment_count>
      <attachid>126646</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-11 14:33:37 -0800</bug_when>
    <thetext>Created attachment 126646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554698</commentid>
    <comment_count>7</comment_count>
      <attachid>126646</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-11 14:44:04 -0800</bug_when>
    <thetext>Comment on attachment 126646
Patch

Attachment 126646 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11506232</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554699</commentid>
    <comment_count>8</comment_count>
      <attachid>126646</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-11 14:47:35 -0800</bug_when>
    <thetext>Comment on attachment 126646
Patch

Attachment 126646 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11508229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554731</commentid>
    <comment_count>9</comment_count>
      <attachid>126656</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-11 16:48:48 -0800</bug_when>
    <thetext>Created attachment 126656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554734</commentid>
    <comment_count>10</comment_count>
      <attachid>126656</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-11 17:01:21 -0800</bug_when>
    <thetext>Comment on attachment 126656
Patch

Attachment 126656 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11505304</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554735</commentid>
    <comment_count>11</comment_count>
      <attachid>126657</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-11 17:11:52 -0800</bug_when>
    <thetext>Created attachment 126657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554742</commentid>
    <comment_count>12</comment_count>
      <attachid>126657</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-11 17:35:54 -0800</bug_when>
    <thetext>Comment on attachment 126657
Patch

Attachment 126657 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11506272</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554746</commentid>
    <comment_count>13</comment_count>
      <attachid>126660</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-11 17:45:06 -0800</bug_when>
    <thetext>Created attachment 126660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554747</commentid>
    <comment_count>14</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-11 18:04:15 -0800</bug_when>
    <thetext>Finalllly, something that build on Qt :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554761</commentid>
    <comment_count>15</comment_count>
      <attachid>126665</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-11 19:09:28 -0800</bug_when>
    <thetext>Created attachment 126665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554805</commentid>
    <comment_count>16</comment_count>
      <attachid>126665</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-12 03:10:00 -0800</bug_when>
    <thetext>Comment on attachment 126665
Patch

Attachment 126665 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11511082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556507</commentid>
    <comment_count>17</comment_count>
      <attachid>127020</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-14 12:51:11 -0800</bug_when>
    <thetext>Created attachment 127020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556602</commentid>
    <comment_count>18</comment_count>
      <attachid>127047</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-14 14:28:45 -0800</bug_when>
    <thetext>Created attachment 127047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556629</commentid>
    <comment_count>19</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-14 14:45:53 -0800</bug_when>
    <thetext>does this help? http://queues.webkit.org/submit-to-ews  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556634</commentid>
    <comment_count>20</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-14 14:50:25 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; does this help? http://queues.webkit.org/submit-to-ews  :)

I just attach the patch and click on &quot;submit to ews&quot;. It looks like I nailed them all except win. Hopefully this last attempt fix the last problem on Windows. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560379</commentid>
    <comment_count>21</comment_count>
      <attachid>127047</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-02-20 14:46:05 -0800</bug_when>
    <thetext>Comment on attachment 127047
Patch

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

Nice.

&gt; Source/WebCore/ChangeLog:266
&gt; +        (WebCore::localizedMediaControlElementHelpText):
&gt; +        (WebCore::localizedMediaTimeDescription):
&gt; +        (WebCore::validationMessageValueMissingText):
&gt; +        (WebCore::validationMessageValueMissingForCheckboxText):
&gt; +        (WebCore::validationMessageValueMissingForFileText):
&gt; +        (WebCore::validationMessageValueMissingForMultipleFileText):
&gt; +        (WebCore::validationMessageValueMissingForRadioText):
&gt; +        (WebCore::validationMessageValueMissingForSelectText):
&gt; +        (WebCore::validationMessageTypeMismatchText):
&gt; +        (WebCore::validationMessageTypeMismatchForEmailText):
&gt; +        (WebCore::validationMessageTypeMismatchForMultipleEmailText):
&gt; +        (WebCore::validationMessageTypeMismatchForURLText):
&gt; +        (WebCore::validationMessagePatternMismatchText):
&gt; +        (WebCore::validationMessageTooLongText):
&gt; +        (WebCore::validationMessageRangeUnderflowText):
&gt; +        (WebCore::validationMessageRangeOverflowText):
&gt; +        (WebCore::validationMessageStepMismatchText):

I don&apos;t think all these are needed in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560603</commentid>
    <comment_count>22</comment_count>
      <attachid>127909</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-20 20:51:08 -0800</bug_when>
    <thetext>Created attachment 127909
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560675</commentid>
    <comment_count>23</comment_count>
      <attachid>127909</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-20 22:37:58 -0800</bug_when>
    <thetext>Comment on attachment 127909
Patch for landing

Clearing flags on attachment: 127909

Committed r108308: &lt;http://trac.webkit.org/changeset/108308&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560676</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-20 22:38:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560688</commentid>
    <comment_count>25</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-20 23:03:59 -0800</bug_when>
    <thetext>Reopen, because it broke the Qt build:
g++ -m64 -fuse-ld=gold -Wl,--gc-sections -Wl,--no-undefined -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/Qt5/Qt-5.0.0-r22/lib -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQtWebKit.so.4 -o libQtWebKit.so.4.10.0 obj/release/WebKit/qt/Api/qwebframe.o obj/release/WebKit/qt/Api/qgraphicswebview.o obj/release/WebKit/qt/Api/qwebpage.o obj/release/WebKit/qt/Api/qwebview.o obj/release/WebKit/qt/Api/qwebelement.o obj/release/WebKit/qt/Api/qwebhistory.o obj/release/WebKit/qt/Api/qwebsettings.o obj/release/WebKit/qt/Api/qwebhistoryinterface.o obj/release/WebKit/qt/Api/qwebplugindatabase.o obj/release/WebKit/qt/Api/qwebpluginfactory.o obj/release/WebKit/qt/Api/qwebsecurityorigin.o obj/release/WebKit/qt/Api/qwebscriptworld.o obj/release/WebKit/qt/Api/qwebdatabase.o obj/release/WebKit/qt/Api/qwebinspector.o obj/release/WebKit/qt/Api/qwebkitversion.o obj/release/WebKit/qt/Api/qhttpheader.o obj/release/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.o obj/release/WebKit/qt/WebCoreSupport/QtWebComboBox.o obj/release/WebKit/qt/WebCoreSupport/ChromeClientQt.o obj/release/WebKit/qt/WebCoreSupport/ContextMenuClientQt.o obj/release/WebKit/qt/WebCoreSupport/DragClientQt.o obj/release/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.o obj/release/WebKit/qt/WebCoreSupport/EditorClientQt.o obj/release/WebKit/qt/WebCoreSupport/UndoStepQt.o obj/release/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.o obj/release/WebKit/qt/WebCoreSupport/FrameNetworkingContextQt.o obj/release/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.o obj/release/WebKit/qt/WebCoreSupport/InitWebCoreQt.o obj/release/WebKit/qt/WebCoreSupport/InspectorClientQt.o obj/release/WebKit/qt/WebCoreSupport/InspectorServerQt.o obj/release/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.o obj/release/WebKit/qt/WebCoreSupport/PageClientQt.o obj/release/WebKit/qt/WebCoreSupport/PopupMenuQt.o obj/release/WebKit/qt/WebCoreSupport/QtPlatformPlugin.o obj/release/WebKit/qt/WebCoreSupport/SearchPopupMenuQt.o obj/release/WebKit/qt/WebCoreSupport/TextCheckerClientQt.o obj/release/WebKit/qt/WebCoreSupport/PlatformStrategiesQt.o obj/release/WebKit/qt/WebCoreSupport/WebEventConversion.o obj/release/WebKit/qt/WebCoreSupport/FullScreenVideoQt.o obj/release/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.o obj/release/WebKit/qt/WebCoreSupport/GeolocationClientQt.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_qwebkitplatformplugin.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_qwebhistoryinterface.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_qwebpluginfactory.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_qwebinspector.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_qwebplugindatabase_p.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_InspectorServerQt.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_QtFallbackWebPopup.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_QtWebComboBox.o obj/release/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/moc/moc_FullScreenVideoQt.o   -L/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/WebKit2/release -L/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/WebCore/release -L/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/JavaScriptCore/release -L/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/WTF/release -L/usr/local/Trolltech/Qt5/Qt-5.0.0-r22/lib -L/usr/X11R6/lib64 -Wl,-whole-archive -lWebKit2 -Wl,-no-whole-archive -Wl,-whole-archive -lWebCore -Wl,-no-whole-archive -lsqlite3 -Wl,-whole-archive -lJavaScriptCore -Wl,-no-whole-archive -Wl,-whole-archive -lWTF -Wl,-no-whole-archive -licui18n -licuuc -licudata -lgio-2.0 -lgstapp-0.10 -lgstinterfaces-0.10 -lgstpbutils-0.10 -pthread -lgstvideo-0.10 -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lrt -lglib-2.0 -lQtQuick -L/usr/local/Trolltech/Qt5/Qt-5.0.0-r22/lib -L/home/wkperf/sources/qt5/qtdeclarative/lib -L/usr/X11R6/lib64 -lQtDeclarative -lQtV8 -lQtLocation -lQt3D -lQtOpenGL -lQtPrintSupport -lQtXmlPatterns -lQtWidgets -lQtSql -lQtSensors -lQtNetwork -lQtGui -lQtCore -lGL -lpthread  
/home/webkitbuildbot/slaves/release64bit-perf/buildslave/qt-linux-64-release-perf-tests/build/WebKitBuild/Release/Source/WebKit2/release/libWebKit2.a(WebPlatformStrategies.o):(.data.rel.ro._ZTVN6WebKit21WebPlatformStrategiesE[vtable for WebKit::WebPlatformStrategies]+0x30): undefined reference to `WebCore::PlatformStrategies::createLocalizationStrategy()&apos;
c</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561081</commentid>
    <comment_count>26</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-21 11:29:02 -0800</bug_when>
    <thetext>Given all Qt bots are building now, I assume it was a problem with the Qt bots.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126606</attachid>
            <date>2012-02-10 16:56:56 -0800</date>
            <delta_ts>2012-02-10 17:57:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120210165655.patch</filename>
            <type>text/plain</type>
            <size>199986</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M1OWRkYTM2N2VlYzg2
NzFjNDUzODFmNmUxYjE3MmI2ZGM5N2Q0Ni4uNDUwYzcwYTAwM2YyNWFiZWU1M2MyMDcwYWRjM2Y0
YWZlNWJhNWQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2MCBAQAorMjAxMi0wMi0xMCAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3Jk
ZXI6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9ybWF0TG9jYWxpemVkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRl
ZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OmlucHV0RWxlbWVu
dEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5v
RmlsZVNlbGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzayk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9v
a1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1t
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVW5kZXJsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ091
dGxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnU21hcnRRdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnU21hcnREYXNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU21h
cnRMaW5rcyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFj
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJD
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhMaXN0TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWEhlYWRpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0
RGVmaW5pdGlvblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklBQ29udGVudEdyb3VwVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEJ1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0
RmllbGRBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
Yik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhNZW51
TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6bWlzc2luZ1BsdWdpblRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1bmtub3duRmlsZVNp
emVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnVwbG9hZEZpbGVUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmFsbEZpbGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpidWlsdEluUERGUGx1Z2lu
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjprZXlnZW5NZW51SXRlbTUxMik6CisgICAgICAgIChXZWJDb3JlOjpr
ZXlnZW5NZW51SXRlbTEwMjQpOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW0yMDQ4
KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbktleWNoYWluSXRlbU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6aW1h
Z2VUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmls
ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdG
b3JNdWx0aXBsZUZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3RyYXRlZ2llczo6UGxhdGZvcm1TdHJhdGVnaWVzKToKKyAgICAgICAgKFBs
YXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5n
c1F0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0
Zm9ybVN0cmF0ZWdpZXNRdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OmlucHV0RWxlbWVudEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRCdXR0b25E
ZWZhdWx0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwpOgorICAgICAgICAoV2ViQ29y
ZTo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6Zmls
ZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRE
ZXRhaWxzU3VtbWFyeVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
T3BlbkxpbmtJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdEb3dubG9hZExpbmtUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnQ29weUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9s
cyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3Ap
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3Jl
ZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnR29CYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0dv
Rm9yd2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDdXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2Vs
ZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0Zv
dW5kKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluayk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJ
dGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFy
Y2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVu
dVJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51Q2xlYXJS
ZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhXZWJBcmVhVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWExpbmtUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlzdE1h
cmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZU1hcFRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6QVhIZWFkaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25M
aXN0VGVybVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRp
b25UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAg
IChXZWJDb3JlOjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpB
WFRleHRGaWVsZEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhDaGVja2VkQ2hlY2tC
b3hBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rp
b25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYTWVudUxpc3RBY3Rpb25WZXJiKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhMaW5rQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjptaXNzaW5nUGx1Z2luVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpjcmFzaGVkUGx1Z2luVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjptdWx0aXBsZUZpbGVVcGxvYWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnVua25vd25G
aWxlU2l6ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6aW1hZ2VUaXRsZSk6CisgICAgICAgIChX
ZWJDb3JlOjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjps
b2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlVW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dCk6CisKIDIwMTItMDItMTAgIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRFlMSUJfSU5TVEFMTF9OQU1FX0JBU0Ug
c2hvdWxkIG5vdCBiZSBwcmVmaXhlZCBieSB0aGUgU0RLUk9PVApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAx
NDhhMjczNjk4MGUyYjI4OWVmNWIwYTI4NDU3ZTBmOWVjZmE4ZjFlLi5hODA2YTdkNWJmZDc5ZmZl
YjEwZTMwMDMzYTI3NjRmNzJhMTNhYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTAyLTEwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBHZXQgcmlkIG9mIHRoZSBMb2NhbGl6YXRpb25TdHJhdGVneQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRm
b3JtU3RyYXRlZ2llc1F0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0
cmF0ZWdpZXNRdC5oOgorICAgICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzUXQpOgorCiAyMDEyLTAy
LTA5ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAg
ICBbUXRdIEZpeCBjb21waWxhdGlvbiB3aXRoIG5ld2VyIFF0NQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpp
bmRleCA2ZDJhN2U2NDdiMmUwYWUwOWI3Zjc2Y2MwNjcyNjc4NTkzZjkyMTMxLi40NjQ2ZjU1MjBh
ODdjZmViZTY4NTY5ZGIzZmZiYjNjZWI3NzRhMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDEyLTAyLTEwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBHZXQgcmlkIG9mIHRoZSBMb2NhbGl6YXRpb25TdHJhdGVneQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmg6CisKIDIwMTEtMTItMTkgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3JlIFBsYXRmb3JtRXZlbnQgY2xlYW51
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggODQ0OGIzYWM5NjY4MmFlNWNkY2Jh
YmMzMDUzNDQzZmQ2NzBkYWViMC4uMDM3NzdmMmU2MDNjODU4YWQwNjNhNDRlMmViMzc1NTFlNDhk
ZmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yODE5LDggKzI4MTksNiBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmggXAotCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgXAotCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EcmFnRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdE
YXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggMTQzZjc4Y2VkNzBjYWY5ZTU1YWYyMWIwZmMyNTI3NzM1MTc1MDkyNC4uMTU1OWI5
MDk1ZThhMDIwOTJjM2QwZjQzZTRkNDliZjdkNTRmMzg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMDM1
LDcgKzEwMzUsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9Db250ZW50VHlwZS5jcHAg
XAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBcCiAgICAgcGxhdGZvcm0vRGF0
ZUNvbXBvbmVudHMuY3BwIFwKLSAgICBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kuY3BwIFwKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAgXAogICAgIHBsYXRmb3JtL0RyYWdJ
bWFnZS5jcHAgXAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcCBcCkBAIC0yMDkwLDcgKzIw
ODksNiBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudS5oIFwKICAgICBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIFwKICAgICBwbGF0Zm9ybS9EYXRlQ29tcG9uZW50
cy5oIFwKLSAgICBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBcCiAgICAg
cGxhdGZvcm0vRHJhZ0RhdGEuaCBcCiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmggXAogICAgIHBs
YXRmb3JtL0ZpbGVDaG9vc2VyLmggXApAQCAtMjgzNSw2ICsyODMzLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgcGxhdGZvcm0vcXQvU291bmRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0xvZ2dpbmdR
dC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0xhbmd1YWdlUXQuY3BwIFwKKyAgICBwbGF0Zm9ybS9x
dC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9UZW1wb3JhcnlMaW5r
U3R1YnNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJvdW5kYXJpZXNRdC5jcHAg
XAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDRjZmZmNmU4YmQxYmMzYWI4ZTU2MDQ3YTExYjc2
NDZiOGFjOWVjZDguLmEwNDkxMTQzYTg0MjBhMmM0OGUzNjYyZWUzOTUyNmUyOGExNWM1MDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC01NDgsNyArNTQ4LDYgQEAgX19aTjdXZWJDb3JlMTdSZWd1
bGFyRXhwcmVzc2lvbkQxRXYKIF9fWk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1cmVFUE5TXzE3
SlNET01HbG9iYWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05TMl85Q2xhc3NJbmZvRQogX19a
TjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVSS04zV1RGNlN0cmluZ0VSaQogX19aTjdXZWJD
b3JlMThIVE1MQ29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCi1fX1pON1dlYkNv
cmUxOFBsYXRmb3JtU3RyYXRlZ2llczI2Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3lFdgogX19a
TjdXZWJDb3JlMThTZWFyY2hQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBf
X1pON1dlYkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRU5T
XzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQogX19aTjdXZWJDb3JlMThwbHVnaW5TY3Jp
cHRPYmplY3RFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTNKU0hUTUxFbGVtZW50RQpAQCAtMTQ3Nyw3
ICsxNDc2LDYgQEAgX19aTks3V2ViQ29yZTlUcmVlU2NvcGUxNGdldEVsZW1lbnRCeUlkRVJLTjNX
VEYxMkF0b21pY1N0cmluZ0UKIF9fWlRWTjdXZWJDb3JlMTJDaHJvbWVDbGllbnRFCiBfX1pUVk43
V2ViQ29yZTE2SWNvbkRhdGFiYXNlQmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRlckNs
aWVudEUKLV9fWlRWTjdXZWJDb3JlMThQbGF0Zm9ybVN0cmF0ZWdpZXNFCiBfX1pUVk43V2ViQ29y
ZTI1SGlzdG9yeVByb3BlcnR5TGlzdFdyaXRlckUKIF9fWlRWTjdXZWJDb3JlMjhJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOFNldHRpbmdzRQogX2ZpbGVuYW1lQnlGaXhpbmdJbGxlZ2FsQ2hh
cmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc4YTg1YzBkMzFlMDkxZDg5ZmJjODBiMTI5NjIz
NzVlNTVhYzNlNzkuLmE0YTFmZTkxZjU0ZDI3MDRjMWVlYjkxMmQ1YjMxOTFhOTRiODg1MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTI1MSw3ICsyNTEsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0Nvb2tpZXNTdHJhdGVneS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9DdXJzb3IuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaCcsCi0gICAgICAgICAgICAncGxh
dGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0RyYWdEYXRhLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdJbWFnZS5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oJywKQEAgLTI2Nyw3ICsyNjYsNiBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL0xlbmd0aEJveC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9MZW5ndGhTaXplLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xpbmtIYXNoLmgnLAotICAg
ICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTG9n
Z2luZy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCcs
CkBAIC0yNzMyLDcgKzI3MzAsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Nyb3NzVGhyZWFk
Q29waWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0N1cnNvci5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0v
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
RHJhZ0RhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9FdmVudExvb3AuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA5
OWFjNGQyZDljYzY3YTViYWE4ZDMyMzRkOThlOTZjNGMzNGQ3YzQ3Li5kNWJlMzlmNDU4N2Y1ZmRj
ZmU0NWUzZmY4MWVjYTRmZjhhY2I2MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTUzMjksOSAr
NTMyOSw2IEBAIF9fWk5LN1dlYkNvcmUxOUFjY2Vzc2liaWxpdHlPYmplY3QxNWlzTWVkaWFUaW1l
bGluZUV2CiAtW0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVEZXNjcmlwdGlvbl0KIF9f
Wk43V2ViQ29yZTEzQVhIZWFkaW5nVGV4dEV2CiBfX1pON1dlYkNvcmUyMWhhc1BsYXRmb3JtU3Ry
YXRlZ2llc0V2Ci1fX1pON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llczI2Y3JlYXRlTG9jYWxp
emF0aW9uU3RyYXRlZ3lFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3lDMUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEzQVhIZWFk
aW5nVGV4dEV2CiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0NHNpemVF
dgogX19aTks3V2ViQ29yZTI1QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDExZWxlbWVudFJlY3RF
dgogX19aTks3V2ViQ29yZTE5QWNjZXNzaWJpbGl0eU9iamVjdDEzaXNSYWRpb0J1dHRvbkV2CkBA
IC02NjgwLDcgKzY2NzcsNiBAQCBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRlcjI1aXNMb2Fk
aW5nTXVsdGlwYXJ0Q29udGVudEV2CiBfX1pOSzdXZWJDb3JlNEtVUkwxN2xhc3RQYXRoQ29tcG9u
ZW50RXYKIF9fWk43V2ViQ29yZTI0ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzRVJLTjNXVEY2U3Ry
aW5nRQogX19aTjdXZWJDb3JlMTBpbWFnZVRpdGxlRVJLTjNXVEY2U3RyaW5nRVJLTlNfN0ludFNp
emVFCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEwaW1hZ2VUaXRs
ZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQogX19aTjdXZWJDb3JlTDIxZm9ybWF0TG9j
YWxpemVkU3RyaW5nRU4zV1RGNlN0cmluZ0V6CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ4c2V0VGl0
bGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ0aGVhZEV2CkBAIC02NzMw
LDcgKzY3MjYsNiBAQCBfX1pON1dlYkNvcmUxNkpTSFRNTFByZUVsZW1lbnQxNWNyZWF0ZVByb3Rv
dHlwZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbAogX19aTjdXZWJDb3JlMTZKU0hU
TUxQcmVFbGVtZW50QzFFUE4zSlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVO
M1dURjEwUGFzc1JlZlB0cklOU18xNEhUTUxQcmVFbGVtZW50RUVFCiBfX1pON1dlYkNvcmUxMmNh
Y2hlV3JhcHBlcklOU18xNEhUTUxQcmVFbGVtZW50RUVFdlBOU18xNURPTVdyYXBwZXJXb3JsZEVQ
VF9QTlNfMTJKU0RPTVdyYXBwZXJFCiBfX1pON1dlYkNvcmUxM0FYV2ViQXJlYVRleHRFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYV2ViQXJlYVRleHRFdgog
X19aTjdXZWJDb3JlMTBSZW5kZXJWaWV3MTNhYnNvbHV0ZVF1YWRzRVJOM1dURjZWZWN0b3JJTlNf
OUZsb2F0UXVhZEVMbTBFRUUKIF9fWk43V2ViQ29yZTI1QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDE2Z2V0RG9jdW1lbnRMaW5rc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzE5QWNjZXNz
aWJpbGl0eU9iamVjdEVFRUxtMEVFRQogX19aTjdXZWJDb3JlOERvY3VtZW50NWxpbmtzRXYKQEAg
LTY3NDAsNyArNjczNSw2IEBAIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QxMWxheW91dENvdW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QyNGVzdGltYXRlZExvYWRpbmdQcm9ncmVzc0V2CiBfX1pOSzdXZWJDb3JlMTVQcm9ncmVzc1Ry
YWNrZXIxN2VzdGltYXRlZFByb2dyZXNzRXYKIF9fWk43V2ViQ29yZTEwQVhMaW5rVGV4dEV2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEwQVhMaW5rVGV4dEV2CiBf
X1pON1dlYkNvcmUxMlJlbmRlcklubGluZTI1Y3VsbGVkSW5saW5lQWJzb2x1dGVSZWN0c0VQS1Mw
X1JOM1dURjZWZWN0b3JJTlNfN0ludFJlY3RFTG0wRUVFUktOU183SW50U2l6ZUUKIF9fWk5LN1dl
YkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxOWludGVybmFsTGlua0VsZW1lbnRFdgog
X19aTks3V2ViQ29yZTE3SFRNTEFuY2hvckVsZW1lbnQ0aHJlZkV2CkBAIC02ODkxLDkgKzY4ODUs
NyBAQCBfX1pOSzdXZWJDb3JlMTNIVE1MSFJFbGVtZW50MjNjYW5Db250YWluUmFuZ2VFbmRQb2lu
dEV2CiBfX1pOSzdXZWJDb3JlMTdBY2Nlc3NpYmlsaXR5TGlzdDEzaXNPcmRlcmVkTGlzdEV2CiBf
X1pOSzdXZWJDb3JlMTdBY2Nlc3NpYmlsaXR5TGlzdDE2aXNEZWZpbml0aW9uTGlzdEV2CiBfX1pO
N1dlYkNvcmUyNEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0RXYKIF9fWk43
V2ViQ29yZTMwQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRl
eHRFdgogX19aTjdXZWJDb3JlMTlIVE1MRmllbGRTZXRFbGVtZW50RDBFdgogX19aTjdXZWJDb3Jl
MTdIVE1MTGVnZW5kRWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZUwxNnZpZGVvQ29uc3RydWN0b3JF
UktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRF
YgpAQCAtNzE4Miw3ICs3MTc0LDYgQEAgX19aVGhuMTIwX043V2ViQ29yZTE2SFRNTE1lZGlhRWxl
bWVudDMwbWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkRVBOU18xMU1lZGkKIF9fWk43V2Vi
Q29yZTExTWVkaWFQbGF5ZXIxMm5ldHdvcmtTdGF0ZUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRp
YUVsZW1lbnQxNXNldE5ldHdvcmtTdGF0ZUVOU18xMU1lZGlhUGxheWVyMTJOZXR3b3JrU3RhdGVF
CiBfX1pON1dlYkNvcmUyOG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHRFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOG1lZGlhRWxlbWVudExvYWRpbmdTdGF0
ZVRleHRFdgogX19aTjdXZWJDb3JlMzRNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
MTljcmVhdGVBVkFzc2V0Rm9yVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMzBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24xN3NldERlbGF5Q2FsbGJhY2tzRWIKIF9fWkwzOGlu
aXRBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25zS2V5dgpAQCAtNzQxNyw3ICs3NDA4LDYg
QEAgX19aTks3V2ViQ29yZTM1QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI5cm9s
ZVZhbHVlRXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFp
bmVyMjRhY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25FdgogX19aTks3V2ViQ29yZTM1QWNjZXNzaWJp
bGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIxNWVsZW1lbnRUeXBlTmFtZUV2CiBfX1pON1dlYkNv
cmUzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmdFUktOM1dURjZTdHJpbmdFCi1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM0bG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudFN0cmluZ0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1RHluYW1p
Y05vZGVMaXN0MTVpbnZhbGlkYXRlQ2FjaGVFdgogX19aTks3V2ViQ29yZTI0TWVkaWFDb250cm9s
SW5wdXRFbGVtZW50MjFpc01lZGlhQ29udHJvbEVsZW1lbnRFdgogX19aTks3V2ViQ29yZTI1QWNj
ZXNzaWJpbGl0eU1lZGlhQ29udHJvbDIyYWNjZXNzaWJpbGl0eUlzSWdub3JlZEV2CkBAIC03NTU0
LDE0ICs3NTQ0LDEyIEBAIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wxNHN0
eWxlRGlkQ2hhbmdlRU5TXzE1U3R5bGVEaWZmZXJlbmNlRVBLTlNfCiBfX1pON1dlYkNvcmUyM1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sMTd1cGRhdGVGcm9tRWxlbWVudEV2CiBfX1pON1dlYkNvcmUx
OFNoYWRvd0lucHV0RWxlbWVudDZjcmVhdGVFUE5TXzExSFRNTEVsZW1lbnRFCiBfX1pON1dlYkNv
cmUyNWZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWxFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kyNWZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWxFdgogX19aTjdXZWJD
b3JlOUlucHV0VHlwZTEydmFsdWVDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTIySFRNTEZvcm1Db250
cm9sRWxlbWVudDExc2V0RGlzYWJsZWRFYgogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbDI5Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHNFdgogX19aTks3V2ViQ29yZTEz
RmlsZUlucHV0VHlwZTEyaXNGaWxlVXBsb2FkRXYKIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wxMXBhaW50T2JqZWN0RVJOU185UGFpbnRJbmZvRWlpCiBfX1pON1dlYkNvcmUy
OWZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MjlmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbEV2CiBfX1pO
N1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RFYgogX19aTjdX
ZWJDb3JlMTFSZW5kZXJCbG9jazEzYWJzb2x1dGVSZWN0c0VSTjNXVEY2VmVjdG9ySU5TXzdJbnRS
ZWN0RUxtMEVFRWlpCiBfX1pUaG44X043V2ViQ29yZTE5SFRNTFRleHRBcmVhRWxlbWVudEQwRXYK
QEAgLTc4MTcsMTAgKzc4MDUsNyBAQCBfX1pOM1dURjlIYXNoVGFibGVJTlNfNlN0cmluZ0VTdDRw
YWlySVMxX1BLTjdXZWJDb3JlMjFFZGl0b3JJbnRlcm5hbENvbW1hbmRFRU5TXwogX19aTjNXVEY5
SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIxRWRpdG9ySW50ZXJu
YWxDb21tYW5kRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTN19FRU5TXzE1Q2FzZUZvbGRpbmdI
YXNoRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSVMxX0VFTlNDX0lTNl9FRUVF
U0RfRTZsb29rdXBJUzFfTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySVMxX1M3X1NBX0VFRUVQ
UzdfUktUXwogX19aTjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2Vi
Q29yZTIxRWRpdG9ySW50ZXJuYWxDb21tYW5kRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTN19F
RU5TXzE1Q2FzZUZvbGRpbmdIYXNoRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRz
SVMxX0VFTlNDX0lTNl9FRUVFU0RfRTZyZWhhc2hFaQogX19aTjdXZWJDb3JlMzVjb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uc0ViCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTZzaGFyZWRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zRWIKIF9fWk43V2Vi
Q29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWxFYgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVs
bGluZ1BhbmVsRWIKIF9fWk43V2ViQ29yZUwyMmNlbnRlclRydW5jYXRlVG9CdWZmZXJFUktOM1dU
RjZTdHJpbmdFampQdAogX19aTjdXZWJDb3JlMTFpc1RleHRCcmVha0VQTlNfMTdUZXh0QnJlYWtJ
dGVyYXRvckVpCiBfX1pON1dlYkNvcmUxNVNRTGl0ZVN0YXRlbWVudDhiaW5kTnVsbEVpCkBAIC0x
MTk1MCw3ICsxMTkzNSw2IEBAIF9fWk43V2ViQ29yZTIyanNIVE1MQ29sbGVjdGlvbkxlbmd0aEVQ
TjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8xMElkZW50CiBfX1pOSzdXZWJDb3Jl
MTdIVE1MT2JqZWN0RWxlbWVudDE4Y29udGFpbnNKYXZhQXBwbGV0RXYKIF9fWk43V2ViQ29yZTIw
UmVuZGVyRW1iZWRkZWRPYmplY3QzMHNldFNob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvckV2CiBf
X1pON1dlYkNvcmUxN21pc3NpbmdQbHVnaW5UZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MTdtaXNzaW5nUGx1Z2luVGV4dEV2CiBfX1pON1dlYkNvcmUyMFJl
bmRlckVtYmVkZGVkT2JqZWN0MTNwYWludFJlcGxhY2VkRVJOU185UGFpbnRJbmZvRWlpCiBfX1pO
N1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MjZnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRy
eUVpaVJOU185RmxvYXRSZWN0RVJOU180UGF0aEVTMl9STlNfNEZvbnRFUk5TXzdUZXh0UnVuRVJm
CiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU185RmxvYXRSZWN0RVJLTlNf
OUZsb2F0U2l6ZUUKQEAgLTEyMzcwLDcgKzEyMzU0LDYgQEAgX19aTjdXZWJDb3JlOUlucHV0VHlw
ZTE5YWx0QXR0cmlidXRlQ2hhbmdlZEV2CiBfX1pOM1dURjZTdHJpbmcxMG1ha2VTZWN1cmVFdAog
X19aTjdXZWJDb3JlOUlucHV0VHlwZTI3c2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlRXYKIF9f
Wk43V2ViQ29yZTE5aW5wdXRFbGVtZW50QWx0VGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTE5aW5wdXRFbGVtZW50QWx0VGV4dEV2CiBfX1pOSzdXZWJDb3Jl
MTdSZW5kZXJUZXh0Q29udHJvbDM2cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9u
RXYKIF9fWk43V2ViQ29yZTMwanNIVE1MSW5wdXRFbGVtZW50RGVmYXVsdFZhbHVlRVBOM0pTQzlF
eGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMy
anNIVE1MSW5wdXRFbGVtZW50RGVmYXVsdENoZWNrZWRFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pT
VmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTUwODYsMTEgKzE1MDY5LDggQEAgX19aTjdX
ZWJDb3JlMTdIVE1MS2V5Z2VuRWxlbWVudDZjcmVhdGVFUktOU18xM1F1YWxpZmllZE5hbWVFUE5T
XzhEb2N1bWVudEVQTlNfMTUKIF9fWk43V2ViQ29yZTE3SFRNTEtleWdlbkVsZW1lbnRDMkVSS05T
XzEzUXVhbGlmaWVkTmFtZUVQTlNfOERvY3VtZW50RVBOU18xNUhUTUxGb3JtRWxlbWVudEUKIF9f
Wk43V2ViQ29yZTIwZ2V0U3VwcG9ydGVkS2V5U2l6ZXNFUk4zV1RGNlZlY3RvcklOUzBfNlN0cmlu
Z0VMbTBFRUUKIF9fWk43V2ViQ29yZTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MThrZXlnZW5NZW51SXRlbTIwNDhFdgogX19a
TjdXZWJDb3JlMThrZXlnZW5NZW51SXRlbTEwMjRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kxOGtleWdlbk1lbnVJdGVtMTAyNEV2CiBfX1pON1dlYkNvcmUxN2tl
eWdlbk1lbnVJdGVtNTEyRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5MTdrZXlnZW5NZW51SXRlbTUxMkV2CiBfX1pON1dlYkNvcmUxN0hUTUxTZWxlY3RFbGVtZW50
QzJFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1l
bnRFCiBfX1pON1dlYkNvcmUxN0hUTUxPcHRpb25FbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50
RVBOU18xNUhUTUxGb3JtRWxlbWVudEUKIF9fWk43V2ViQ29yZTEzU2VsZWN0RWxlbWVudDEzZGVz
ZWxlY3RJdGVtc0VSTlNfMTdTZWxlY3RFbGVtZW50RGF0YUVQTlNfN0VsZW1lbnRFUzRfCkBAIC0x
NTU3MSw2MCArMTU1NTEsMzQgQEAgX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudUMxRXYKIF9fWk43
V2ViQ29yZTExQ29udGV4dE1lbnVDMkV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJv
bGxlcjhwb3B1bGF0ZUV2CiBfX1pON1dlYkNvcmUyNmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5r
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjZjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuTGlua0V2CiBfX1pON1dlYkNvcmUxNUNvbnRleHRNZW51SXRlbUMxRU5TXzE5
Q29udGV4dE1lbnVJdGVtVHlwZUVOU18xN0NvbnRleHRNZW51QWN0aW9uRVJLTjNXVEY2U3RyaW5n
RVBOU18xMUNvbnRleHRNZW51RQogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1DMkVOU18x
OUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250ZXh0TWVudUFjdGlvbkVSS04zV1RGNlN0cmlu
Z0VQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2ViQ29yZUwzM2NyZWF0ZVBsYXRmb3JtTWVudUl0
ZW1EZXNjcmlwdGlvbkVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250ZXh0TWVudUFj
dGlvbkVSS04zV1RGNlN0cmluZ0ViYgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTGlua0luTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Mzdjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93RXYKIF9fWk43V2Vi
Q29yZTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrRXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9h
ZExpbmtUb0Rpc2tFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1Rv
Q2xpcGJvYXJkRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzdj
b250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkRXYKIF9fWk43V2ViQ29yZTM4Y29u
dGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3dFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3
V2luZG93RXYKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRv
RGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlza0V2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZEV2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQbGF5RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlRXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjdjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYU11dGVFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUNvbnRyb2xzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzdj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzRXYKIF9fWk43V2ViQ29yZTMzY29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MzNjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3BFdgog
X19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbkV2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4Y29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzVjb250ZXh0TWVudUl0ZW1U
YWdTZWFyY2hJblNwb3RsaWdodEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHRFdgogX19aTjdXZWJD
b3JlMjdjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYkV2CiBfX1pO
N1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0NvcHlFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRNZW51SXRlbVRhZ0NvcHlFdgogX19aTjdXZWJD
b3JlMjRjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2tFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRlbVRhZ0dvQmFja0V2CiBfX1pON1dlYkNv
cmUyN2NvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkRXYKIF9fWk43
V2ViQ29yZTIyY29udGV4dE1lbnVJdGVtVGFnU3RvcEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTIyY29udGV4dE1lbnVJdGVtVGFnU3RvcEV2CiBfX1pON1dlYkNv
cmUyNGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkRXYKIF9fWk43V2ViQ29y
ZTM4Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3dFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFt
ZUluTmV3V2luZG93RXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2Vz
Rm91bmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRl
eHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJ
dGVtVGFnSWdub3JlU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nRXYKIF9fWk43V2ViQ29y
ZTMxY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZ0V2
CiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXJFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ0ln
bm9yZUdyYW1tYXJFdgogX19aTjdXZWJDb3JlMjFjb250ZXh0TWVudUl0ZW1UYWdDdXRFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMWNvbnRleHRNZW51SXRlbVRh
Z0N1dEV2CiBfX1pON1dlYkNvcmUyM2NvbnRleHRNZW51SXRlbVRhZ1Bhc3RlRXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjNjb250ZXh0TWVudUl0ZW1UYWdQYXN0
ZUV2CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTdpc0NvbnRlbnRFZGl0YWJsZUV2CiBf
X1pOSzdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIyMWNoZWNrT3JFbmFibGVJZk5lZWRl
ZEVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pOSzdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW00
dHlwZUV2CkBAIC0xNTYzOCw3ICsxNTU5Miw2IEBAIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1
bHQxMm1lZGlhRWxlbWVudEV2CiBfX1pON1dlYkNvcmUxNUNvbnRleHRNZW51SXRlbUQxRXYKIF9f
Wk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMjFhZGRJbnNwZWN0RWxlbWVudEl0ZW1F
dgogX19aTjdXZWJDb3JlMzJjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudEV2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMyY29udGV4dE1lbnVJdGVtVGFn
SW5zcGVjdEVsZW1lbnRFdgogX19aTks3V2ViQ29yZTExQ29udGV4dE1lbnUxOXBsYXRmb3JtRGVz
Y3JpcHRpb25FdgogX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudTIyc2V0UGxhdGZvcm1EZXNjcmlw
dGlvbkVQMTROU011dGFibGVBcnJheQogX19aTjdXZWJDb3JlOERvY3VtZW50MjNhY3RpdmVDaGFp
bk5vZGVEZXRhY2hlZEVQTlNfNE5vZGVFCkBAIC0xNjIxMCwxNiArMTYxNjMsMTEgQEAgX19aTks3
V2ViQ29yZTE4VGV4dENoZWNraW5nSGVscGVyNDBndWVzc2VzRm9yTWlzc3BlbGxlZE9yVW5ncmFt
bWF0aWNhbFJhbmdlRWJSYlMKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNHJlcGxhY2Vk
U3RyaW5nRXYKIF9fWk43V2ViQ29yZUwyOXNlbGVjdGlvbkNvbnRhaW5zUG9zc2libGVXb3JkRVBO
U181RnJhbWVFCiBfX1pON1dlYkNvcmUzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudUV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMwY29udGV4dE1lbnVJ
dGVtVGFnU3BlbGxpbmdNZW51RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVy
NDBjcmVhdGVBbmRBcHBlbmRTcGVsbGluZ0FuZEdyYW1tYXJTdWJNZW51RVJOU18xNUNvbnRleHRN
ZW51SXRlbUUKIF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ0V2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4dE1lbnVJ
dGVtVGFnQ2hlY2tTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nRXYK
IF9fWk43V2ViQ29yZTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5n
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5NDJjb250ZXh0TWVu
dUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlNDZjb250ZXh0
TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5RXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5NDZjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3Bl
bGxpbmdBdXRvbWF0aWNhbGx5RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IyMnNwZWxsaW5nUGFuZWxJ
c1Nob3dpbmdFdgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW04c2V0VGl0bGVFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yMjRpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWRF
dgpAQCAtMTYyMjcsNjYgKzE2MTc1LDQxIEBAIF9fWk43V2ViQ29yZTZFZGl0b3IzNmlzQXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmUxNUNvbnRleHRNZW51
SXRlbTEwc2V0U3ViTWVudUVQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2ViQ29yZTExQ29udGV4
dE1lbnVEMUV2CiBfX1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNN
ZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVjb250ZXh0
TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51
Q29udHJvbGxlcjM1Y3JlYXRlQW5kQXBwZW5kU3Vic3RpdHV0aW9uc1N1Yk1lbnVFUk5TXzE1Q29u
dGV4dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMzJjb250ZXh0TWVudUl0ZW1UYWdTbWFydENvcHlQ
YXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMyY29udGV4
dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgogX19aTjdXZWJDb3JlMjljb250ZXh0TWVudUl0
ZW1UYWdTbWFydFF1b3Rlc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXNFdgogX19aTjdXZWJDb3JlMjljb250
ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXNFdgogX19aTjdXZWJD
b3JlMjhjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzRXYKIF9f
Wk43V2ViQ29yZTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50RXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzNjb250ZXh0TWVudUl0ZW1UYWdUZXh0
UmVwbGFjZW1lbnRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjI3c3Vic3RpdHV0aW9uc1BhbmVsSXNT
aG93aW5nRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzNWlzQXV0b21hdGljUXVvdGVTdWJzdGl0dXRp
b25FbmFibGVkRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzNGlzQXV0b21hdGljRGFzaFN1YnN0aXR1
dGlvbkVuYWJsZWRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjMxaXNBdXRvbWF0aWNMaW5rRGV0ZWN0
aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMzNpc0F1dG9tYXRpY1RleHRSZXBsYWNl
bWVudEVuYWJsZWRFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1h
dGlvbnNNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzdj
b250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51RXYKIF9fWk43V2ViQ29yZTIxQ29u
dGV4dE1lbnVDb250cm9sbGVyMzdjcmVhdGVBbmRBcHBlbmRUcmFuc2Zvcm1hdGlvbnNTdWJNZW51
RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFn
TWFrZVVwcGVyQ2FzZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTMxY29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZUV2CiBfX1pON1dlYkNvcmUzMWNvbnRl
eHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2VFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2VFdgogX19aTjdX
ZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplRXYK
IF9fWk43V2ViQ29yZTI2Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnVFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51
RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMjZjcmVhdGVBbmRBcHBlbmRG
b250U3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUyN2NvbnRleHRN
ZW51SXRlbVRhZ1Nob3dGb250c0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzRXYKIF9fWk43V2ViQ29yZTIyY29u
dGV4dE1lbnVJdGVtVGFnQm9sZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTIyY29udGV4dE1lbnVJdGVtVGFnQm9sZEV2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRN
ZW51SXRlbVRhZ0l0YWxpY0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1l
bnVJdGVtVGFnVW5kZXJsaW5lRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Mjdjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmVFdgogX19aTjdXZWJDb3JlMjVjb250
ZXh0TWVudUl0ZW1UYWdPdXRsaW5lRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjVjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lRXYKIF9fWk43V2ViQ29yZTI0Y29u
dGV4dE1lbnVJdGVtVGFnU3R5bGVzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjRjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXNFdgogX19aTjdXZWJDb3JlMjhjb250
ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKIF9fWk43V2ViQ29y
ZTI4Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudUV2CiBfX1pO
N1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjI4Y3JlYXRlQW5kQXBwZW5kU3BlZWNoU3Vi
TWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRl
bVRhZ1N0YXJ0U3BlYWtpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmdFdgogX19aTjdXZWJDb3JlMzBj
b250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmdFdgogX19aTjdXZWJDb3JlMzBvdmVycmlkZVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNFUktOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0wRUVFCi1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMwY29udGV4dE1lbnVJdGVt
VGFnU3RvcFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVtVGFnV3JpdGlu
Z0RpcmVjdGlvbk1lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51RXYKIF9fWk43V2ViQ29y
ZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMzhjcmVhdGVBbmRBcHBlbmRXcml0aW5nRGlyZWN0aW9u
U3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzNGNvbnRleHRNZW51
SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb25FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzNGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb25FdgogX19aTjdX
ZWJDb3JlMjljb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHRF
dgogX19aTjdXZWJDb3JlMjljb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdEV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnUmln
aHRUb0xlZnRFdgogX19aTks3V2ViQ29yZTZFZGl0b3IxNmhhc0JpZGlTZWxlY3Rpb25FdgogX19a
Tks3V2ViQ29yZTEzS2V5Ym9hcmRFdmVudDhjaGFyQ29kZUV2CiBfX1pON1dlYkNvcmUxOGpzRE9N
U2VsZWN0aW9uVHlwZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8xMElkZW50
aWZpZXJFCkBAIC0xNjI5NSw3ICsxNjIxOCw2IEBAIF9fWk5LN1dlYkNvcmUxMVJlbmRlckJsb2Nr
MjRjb250YWluc05vblplcm9CaWRpTGV2ZWxFdgogX19aTks3V2ViQ29yZTE5QXBwbHlQcm9wZXJ0
eUxlbmd0aElMTlNfMTBMZW5ndGhBdXRvRTFFTE5TXzE1TGVuZ3RoSW50cmluc2ljRTFFTE5TXzE4
TGVuZ3RoTWluSW50cmluc2ljRTFFTE5TXzEwTGVuZ3RoTm9uZUUxRUxOU18xNUxlbmd0aFVuZGVm
aW5lZEUxRUUxMGFwcGx5VmFsdWVFUE5TXzE2Q1NTU3R5bGVTZWxlY3RvckVQTlNfOENTU1ZhbHVl
RQogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTExc2V0TWF4V2lkdGhFTlNfNkxlbmd0aEUKIF9f
Wk43V2ViQ29yZTM2Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5RVJLTjNXVEY2
U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNmNvbnRl
eHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKIF9fWk5LN1dl
YkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIyNmhhc0luc3BlY3RvckZyb250ZW5kQ2xpZW50RXYK
IF9fWk5LN1dlYkNvcmUyMUJhY2tGb3J3YXJkQ29udHJvbGxlcjE4Y2FuR29CYWNrT3JGb3J3YXJk
RWkKIF9fWk5LN1dlYkNvcmU0UGFnZTE4Y2FuR29CYWNrT3JGb3J3YXJkRWkKQEAgLTE3MDYzLDcg
KzE2OTg1LDYgQEAgX19aTjdXZWJDb3JlMTRTVkdTTUlMRWxlbWVudDIwZGlzY29ubmVjdENvbmRp
dGlvbnNFdgogX19aTjdXZWJDb3JlMTdTTUlMVGltZUNvbnRhaW5lcjEwdW5zY2hlZHVsZUVQTlNf
MTRTVkdTTUlMRWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveDEwcmVuZGVyTmFtZUV2CiBfX1pON1dlYkNvcmUyN3NlYXJjaGFibGVJbmRleEludHJvZHVj
dGlvbkV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3c2VhcmNo
YWJsZUluZGV4SW50cm9kdWN0aW9uRXYKIF9fWk43V2ViQ29yZTE0UmVuZGVyUnVieVRleHRDMUVQ
TlNfNE5vZGVFCiBfX1pOSzdXZWJDb3JlMTNSZW5kZXJSdWJ5UnVuMTFoYXNSdWJ5VGV4dEV2CiBf
X1pOSzdXZWJDb3JlMTRSZW5kZXJSdWJ5VGV4dDEwaXNSdWJ5VGV4dEV2CkBAIC0xODk2OSw3ICsx
ODg5MCw2IEBAIF9fWk43V2ViQ29yZThMb2NhdGlvbjdzZXRIcmVmRVJLTjNXVEY2U3RyaW5nRVBO
U185RE9NV2luZG93RVM2XwogX19aTjdXZWJDb3JlMTdTdHlsZVBlbmRpbmdJbWFnZTEycmVtb3Zl
Q2xpZW50RVBOU18xMlJlbmRlck9iamVjdEUKIF9fWk43V2ViQ29yZTE1U3VibWl0SW5wdXRUeXBl
MTJkZWZhdWx0VmFsdWVFdgogX19aTjdXZWJDb3JlMjRzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWxF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNHN1Ym1pdEJ1dHRv
bkRlZmF1bHRMYWJlbEV2CiBfX1pOSzdXZWJDb3JlMTFSZW5kZXJUYWJsZTIwZmlyc3RMaW5lQm94
QmFzZWxpbmVFdgogX19aTks3V2ViQ29yZTE4UmVuZGVyVGFibGVTZWN0aW9uMjBmaXJzdExpbmVC
b3hCYXNlbGluZUV2CiBfX1pOSzdXZWJDb3JlMTVSZW5kZXJXb3JkQnJlYWsxMHJlbmRlck5hbWVF
dgpAQCAtMTk0NTUsNyArMTkzNzUsNiBAQCBfX1pON1dlYkNvcmVMMjJUb3BHcmFkaWVudEludGVy
cG9sYXRlRVB2UEtkUGQKIF9fWk43V2ViQ29yZUwyNUJvdHRvbUdyYWRpZW50SW50ZXJwb2xhdGVF
UHZQS2RQZAogX19aTjdXZWJDb3JlMTRSZXNldElucHV0VHlwZTEyZGVmYXVsdFZhbHVlRXYKIF9f
Wk43V2ViQ29yZTIzcmVzZXRCdXR0b25EZWZhdWx0TGFiZWxFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyM3Jlc2V0QnV0dG9uRGVmYXVsdExhYmVsRXYKIF9fWk43
V2ViQ29yZTEyVVJMSW5wdXRUeXBlNmNyZWF0ZUVQTlNfMTZIVE1MSW5wdXRFbGVtZW50RQogX19a
Tks3V2ViQ29yZTEyVVJMSW5wdXRUeXBlMTVmb3JtQ29udHJvbFR5cGVFdgogX19aTjdXZWJDb3Jl
MTRJbnB1dFR5cGVOYW1lczN1cmxFdgpAQCAtMjUyMjEsNyArMjUxNDAsNiBAQCBfX1pON1dlYkNv
cmUxM0pTRXZlbnRTb3VyY2VEMUV2CiBfX1pON1dlYkNvcmUxMUV2ZW50U291cmNlRDBFdgogX19a
TkszSlNDMTRKU0dsb2JhbE9iamVjdDE0aXNHbG9iYWxPYmplY3RFdgogX19aTjdXZWJDb3JlMjJt
dWx0aXBsZUZpbGVVcGxvYWRUZXh0RWoKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjJtdWx0aXBsZUZpbGVVcGxvYWRUZXh0RWoKIF9fWk43V2ViQ29yZTE3UmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94MjJjYWxjVmVydGljYWxQcmVmV2lkdGhzRXYKIF9fWk43V2Vi
Q29yZTExUmVuZGVyU3R5bGUxNXNldEJveEZsZXhHcm91cEVqCiBfX1pOSzdXZWJDb3JlMTNSZW5k
ZXJMaXN0Qm94MTByZW5kZXJOYW1lRXYKQEAgLTI1NDk4LDcgKzI1NDE2LDYgQEAgX19aTjdXZWJD
b3JlMjJIVE1MRm9ybUNvbnRyb2xFbGVtZW50MzB1cGRhdGVWaXNpYmxlVmFsaWRhdGlvbk1lc3Nh
Z2VFdgogX19aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDE2dmFsdWVNaXNzaW5nVGV4dEV2
CiBfX1pOSzdXZWJDb3JlOUlucHV0VHlwZTE2dmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pON1dlYkNv
cmUzM3ZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdU
ZXh0RXYKIF9fWk43V2ViQ29yZTE3VmFsaWRhdGlvbk1lc3NhZ2U2Y3JlYXRlRVBOU18yMUZvcm1B
c3NvY2lhdGVkRWxlbWVudEUKIF9fWk43V2ViQ29yZTE3VmFsaWRhdGlvbk1lc3NhZ2UxMHNldE1l
c3NhZ2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU1VGltZXJJTlNfMTdWYWxpZGF0aW9u
TWVzc2FnZUVFNWZpcmVkRXYKQEAgLTI1NjA4LDExICsyNTUyNSw5IEBAIF9fWk43V2ViQ29yZTQ0
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JDaGVja2JveFRleHRFdgogX19aTks3V2Vi
Q29yZTE0UmFkaW9JbnB1dFR5cGUxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3JlNDF2
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclJhZGlvVGV4dEV2CiBfX1pON1dlYkNvcmUz
NnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM2dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0
Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxNnR5cGVNaXNtYXRjaFRl
eHRFdgogX19aTks3V2ViQ29yZTE0RW1haWxJbnB1dFR5cGUxNnR5cGVNaXNtYXRjaFRleHRFdgog
X19aTjdXZWJDb3JlNDF2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dEV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29yZTM4anNIVE1MRmllbGRTZXRFbGVt
ZW50VmFsaWRhdGlvbk1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBf
MTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzZqc0hUTUxLZXlnZW5FbGVtZW50VmFsaWRhdGlv
bk1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVy
RQogX19aTjdXZWJDb3JlMzNqc0hUTUxGaWVsZFNldEVsZW1lbnRXaWxsVmFsaWRhdGVFUE4zSlND
OUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMjg2MTEsNyAr
Mjg1MjYsNiBAQCBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJmaW5kRnJhbWVGb3JOYXZpZ2F0
aW9uRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2Jq
ZWN0MjN0aHJvd0ludmFsaWRBY2Nlc3NFcnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk43V2ViQ29y
ZTIwUmVuZGVyRW1iZWRkZWRPYmplY3QzMHNldFNob3dzQ3Jhc2hlZFBsdWdpbkluZGljYXRvckV2
CiBfX1pON1dlYkNvcmUxN2NyYXNoZWRQbHVnaW5UZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MTdjcmFzaGVkUGx1Z2luVGV4dEV2CiBfX1pON1dlYkNvcmUx
NlNjcmlwdENvbnRyb2xsZXIxMWNyZWF0ZVdvcmxkRXYKIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAy
MGFkZFVzZXJTY3JpcHRUb1dvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEVSS04zV1RGNlN0cmlu
Z0VSS05TXzRLVVJMRU5TM18xMFBhc3NPd25QdHJJTlMzXzZWZWN0b3JJUzRfTG0wRUVFRUVTRF9O
U18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRU5TXzI1VXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
c0UKIF9fWk43V2ViQ29yZTEwVXNlclNjcmlwdEMyRVJLTjNXVEY2U3RyaW5nRVJLTlNfNEtVUkxF
TlMxXzEwUGFzc093blB0cklOUzFfNlZlY3RvcklTMl9MbTBFRUVFRVNCX05TXzIzVXNlclNjcmlw
dEluamVjdGlvblRpbWVFTlNfMjVVc2VyQ29udGVudEluamVjdGVkRnJhbWVzRQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBkM2VjNzdhOGFmYWI2
ODMwOTFiOGVmMDk3MTIzMzFlMDY5OTY4NTYyLi5mY2IwM2FiNDQ1ZDBiMjk4OGY3ODNhZGQ5YzVi
N2ExMDhlYmE5ZWZmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjY1NDIsMTQgKzI2NTQyLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgiCi0JCQkJPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERyYWdEYXRh
LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNjY4NiwxMCArMjY2NzgsNiBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxMb2Nh
bGl6YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxMb2NhbGl6ZWRTdHJpbmdzLmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYmNjMWU0YWU5YmMxZGI4YjY5YTVhN2QxOGM3ZDgyN2RiYmUxZmRhMS4uZTI4
YzAwMWI5NjNkNWQxZTdmNjY3NWVlZTFiN2JmYjlkMTFlMzZiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTE0OCw3ICs1MTQ4
LDYgQEAKIAkJQkM1QTg2QjYwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVBODZCNDBDMzM2
N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uaCAqLzsgfTsKIAkJQkM1Qzc2MkExNDk3RkUx
NDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3Jt
RXZlbnQuY3BwICovOyB9OwogCQlCQzVDNzYyQjE0OTdGRTE0MDBCQzQ3NzUgLyogUGxhdGZvcm1F
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1
Qzc2MjkxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzVDRkNBOTExRjc5MzMyMDA5OUVE
MDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUNGQ0E4MTFGNzkzMzIwMDk5RUQwOSAvKiBMb2NhbGl6YXRp
b25TdHJhdGVneS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUJDNUVCNURCMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RUI1REEwRTgxQjdFQTAw
QjI1OTY1IC8qIEJvcmRlclZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQkM1RUI1REQwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RUI1
REMwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNUVCNURGMEU4MUI5QUIwMEIyNTk2NSAv
KiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM1RUI1REUwRTgxQjlBQjAwQjI1OTY1IC8qIENvbGxhcHNlZEJvcmRl
clZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTUzNTIsOCArNTM1MSw2IEBACiAJCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLzsgfTsKIAkJQkND
MDY1ODkwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODUwRjNDRTJBNzAwQ0Qy
RDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwogCQlCQ0MwNjU4QTBGM0NFMkE3MDBD
RDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVj
dExpc3QuaCAqLzsgfTsKLQkJQkNDMzZFQjgxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0MzNkVCNjEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5LmNwcCAqLzsgfTsKLQkJQkNDMzZFQjkxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneS5oICovOyB9OwogCQlCQ0M0Mzg3ODBFODg2Q0M3MDA1MzNERDUgLyogSlNI
VE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzQzODc3MEU4ODZDQzcwMDUzM0RENSAvKiBKU0hUTUxJbnB1dEVs
ZW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQ0M1NzMzNTBENjk1QkJFMDA2RUY1MTcgLyogRE9N
UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNDNTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAqLzsg
fTsKIAkJQkNDNTczMzYwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMzNDBENjk1
QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSAqLzsgfTsKQEAgLTEyMDU0LDcgKzEy
MDUxLDYgQEAKIAkJQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVNlbGVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzVDNzYyODE0OTdGRTE0MDBCQzQ3NzUgLyogUGxh
dGZvcm1FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0
Zm9ybUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1Qzc2MjkxNDk3
RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
QzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REEwRTgxQjdFQTAwQjI1OTY1IC8qIEJvcmRl
clZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJvcmRlclZhbHVlLmg7
IHBhdGggPSBzdHlsZS9Cb3JkZXJWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzVFQjVEQzBFODFCOEREMDBCMjU5NjUgLyogT3V0bGluZVZhbHVlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE91dGxpbmVWYWx1ZS5oOyBwYXRoID0gc3R5bGUvT3V0bGlu
ZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUVCNURFMEU4MUI5QUIw
MEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5bGUvQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMjc5LDggKzEy
Mjc1LDYgQEAKIAkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVudFJlY3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDMDY1ODUwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50
UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDbGll
bnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzA2NTg2MEYz
Q0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkNDMzZFQjYxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Mz
NkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M0Mzg3NzBFODg2Q0M3MDA1MzNE
RDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVz
c0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dyZXNzRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDNTczMzQwRDY5NUJCRTAwNkVG
NTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTk2ODgsOCArMTk2ODIsNiBAQAogCQkJCUY1ODc4Njg0MDJERTNCODYwMUVBNDEyMiAv
KiBDdXJzb3IuaCAqLywKIAkJCQlBNTczMkIwODEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBv
bmVudHMuY3BwICovLAogCQkJCUE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9u
ZW50cy5oICovLAotCQkJCUJDQzM2RUI2MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kuY3BwICovLAotCQkJCUJDQzM2RUI3MTM0MkFBM0YwMDRCRUVGNyAvKiBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLywKIAkJCQlBNzk1NDY0MjBCNUM0Q0I0MDA3
QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovLAogCQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAv
KiBEcmFnRGF0YS5oICovLAogCQkJCUE3Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1h
Z2UuY3BwICovLApAQCAtMTk3MjIsNyArMTk3MTQsNiBAQAogCQkJCUJDRkY2NDkwMEVBRDE1QzIw
MEMxRDZGNyAvKiBMZW5ndGhTaXplLmggKi8sCiAJCQkJQTdBRDJGODUwRUM4OUQwNzAwOEFCMDAy
IC8qIExpbmtIYXNoLmNwcCAqLywKIAkJCQlBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlu
a0hhc2guaCAqLywKLQkJCQlCQzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9u
U3RyYXRlZ3kuaCAqLywKIAkJCQlDMDQ2RTFBQjEyMDhBOUZFMDBCQTJDRjcgLyogTG9jYWxpemVk
U3RyaW5ncy5jcHAgKi8sCiAJCQkJOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXpl
ZFN0cmluZ3MuaCAqLywKIAkJCQlBODIzOURGRTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5j
cHAgKi8sCkBAIC0yMTM5Niw3ICsyMTM4Nyw2IEBACiAJCQkJNDE2MkE0NTExMDExNDVBRTAwREZG
M0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTNE
NThGMTAxQzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzM2RUI5MTM0MkFBM0YwMDRCRUVGNyAv
KiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNjdF
QkY2MTAyOTYyQkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMkMxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5RFNQS2Vy
bmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyRTEyQjAyNjc2MDBDMUEzNTkgLyogRGVs
YXlOb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTIzMDgxLDcgKzIzMDcxLDYgQEAKIAkJCQkwNkU4
MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk3NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3Jp
cHRNYXBwaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODU2ODEyMkNBMDY0MDAzQUFCREEg
LyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzVDRkNBOTExRjc5MzMy
MDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
NzMyQjBEMTM2QTE2QzQwMDVDOEQ3QyAvKiBMb2NhbGl6ZWREYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGNTE0MkM2OTEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5n
cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDc5NCw3ICsyNDc4Myw2IEBACiAJCQkJNDE2MkE0NTAx
MDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRocmVh
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyogRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQzM2RUI4
MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE2N0VCRjUxMDI5NjJCQTAwM0QyNTJBIC8qIERlZmF1bHRTaGFyZWRX
b3JrZXJSZXBvc2l0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDJCMTJCMDI2NzYw
MEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAy
RDEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlOb2RlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwZDJlMzQ5MTFmNDgyOTg1OTk0
YTQ5ZmMwZWFiOWU1ZGI2YWUyYzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk2OCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneS5oIgotCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0KLSNpbmNsdWRlICJJ
bnRTaXplLmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3
dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgotI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5o
PgotCi0jaWYgVVNFKENGKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNl
bmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFdlIGNhbid0IHVzZSBTdHJpbmc6OmZv
cm1hdCBmb3IgdHdvIHJlYXNvbnM6Ci0vLyAgMSkgSXQgZG9lc24ndCBoYW5kbGUgbm9uLUFTQ0lJ
IGNoYXJhY3RlcnMgaW4gdGhlIGZvcm1hdCBzdHJpbmcuCi0vLyAgMikgSXQgZG9lc24ndCBoYW5k
bGUgdGhlICUyJGQgc3ludGF4LgotLy8gTm90ZSB0aGF0IGJlY2F1c2UgfGZvcm1hdHwgaXMgdXNl
ZCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byB2YV9zdGFydCwgaXQgY2Fubm90IGJlIGEgcmVm
ZXJlbmNlCi0vLyB0eXBlIGFjY29yZGluZyB0byBzZWN0aW9uIDE4LjcvMyBvZiB0aGUgQysrIE4x
OTA1IHN0YW5kYXJkLgotc3RhdGljIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoU3RyaW5n
IGZvcm1hdCwgLi4uKQotewotI2lmIFVTRShDRikKLSAgICB2YV9saXN0IGFyZ3VtZW50czsKLSAg
ICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBmb3JtYXRDRlN0cmluZyhBZG9wdENGLCBmb3JtYXQuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAg
UmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQoQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRo
Rm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdENGU3RyaW5nLmdldCgpLCBhcmd1bWVudHMp
KTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICByZXR1cm4gcmVzdWx0LmdldCgpOwotI2Vs
aWYgUExBVEZPUk0oUVQpCi0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3RhcnQoYXJn
dW1lbnRzLCBmb3JtYXQpOwotICAgIFFTdHJpbmcgcmVzdWx0OwotICAgIHJlc3VsdC52c3ByaW50
Zihmb3JtYXQubGF0aW4xKCkuZGF0YSgpLCBhcmd1bWVudHMpOwotICAgIHZhX2VuZChhcmd1bWVu
dHMpOwotICAgIHJldHVybiByZXN1bHQ7Ci0jZWxzZQotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIGZvcm1hdDsKLSNlbmRpZgotfQotCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotc3RhdGljIFN0
cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdp
bmFsKQotewotICAgIGlmIChvcmlnaW5hbC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBvcmln
aW5hbDsKLSAgICAKLSAgICAvLyBUcnVuY2F0ZSB0aGUgc3RyaW5nIGlmIGl0J3MgdG9vIGxvbmcu
IFRoaXMgaXMgaW4gY29uc2lzdGVuY3kgd2l0aCBBcHBLaXQuCi0gICAgdW5zaWduZWQgbWF4TnVt
YmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51SXRlbSA9IDI0OwotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBlbGxpcHNpcywgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsK
LSAgICAKLSAgICBTdHJpbmcgdHJpbW1lZCA9IG9yaWdpbmFsLnN0cmlwV2hpdGVTcGFjZSgpOwot
ICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVycyA9IG51bUNoYXJhY3RlcnNJbkdyYXBoZW1l
Q2x1c3RlcnModHJpbW1lZCwgbWF4TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51
SXRlbSk7Ci0gICAgcmV0dXJuIG51bWJlck9mQ2hhcmFjdGVycyA9PSB0cmltbWVkLmxlbmd0aCgp
ID8gdHJpbW1lZCA6IHRyaW1tZWQubGVmdChudW1iZXJPZkNoYXJhY3RlcnMpICsgZWxsaXBzaXM7
Ci19Ci0jZW5kaWYKLQotRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5JiBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OnNoYXJlZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksIGRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneSwgKCkp
OwotICAgIHJldHVybiBkZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k7Ci19Ci0KLURlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5KCkKLXsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6aW5wdXRFbGVtZW50QWx0VGV4
dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3VibWl0IChp
bnB1dCBlbGVtZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFs
dCwgdGl0bGUsIG9yIHZhbHVlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OnJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVzZXQgYnV0dG9ucyBpbiBmb3JtcyBv
biB3ZWIgcGFnZXMiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3b3JkczogIiwK
LSAgICAgICAgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBuZWFybHktb2Jzb2xl
dGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgnIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRM
YWJlbCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1Ym1pdCIsICJkZWZhdWx0IGxh
YmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJl
bCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlIiwgInRpdGxlIGZv
ciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9uQ2hvb3NlTXVs
dGlwbGVGaWxlc0xhYmVsKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hvb3NlIEZp
bGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNlZCBpbiBI
VE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4iKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbk5vRmls
ZVNlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBmaWxlIHNl
bGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9y
bXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxh
eSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2Vs
ZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVk
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmRlZmF1bHREZXRh
aWxzU3VtbWFyeVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEZXRhaWxzIiwg
InRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1tYXJ5
PiBjaGlsZCIpOwotfQotCi0jaWYgUExBVEZPUk0oTUFDKQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInVua25vd24iLCAiVW5rbm93biBmaWxlbmFtZSIpOwotfQotI2VuZGlm
Ci0KLSNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gTGluayBpbiBOZXcgV2luZG93IiwgIk9wZW4g
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2so
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEb3dubG9hZCBMaW5rZWQgRmlsZSIsICJE
b3dubG9hZCBMaW5rZWQgRmlsZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xp
cGJvYXJkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBMaW5rIiwgIkNvcHkg
TGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyIsICJPcGVu
IEltYWdlIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFn
ZVRvRGlzaygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRvd25sb2FkIEltYWdlIiwg
IkRvd25sb2FkIEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBJbWFnZSIsICJDb3B5IElt
YWdlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLSNpZiBQTEFURk9STShRVCkKLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVy
bFRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBJbWFnZSBB
ZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0iKTsKLX0KLSNlbmRpZgotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVu
VmlkZW9Jbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gVmlk
ZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2lu
ZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRkcmVzcyIsICJDb3B5IFZp
ZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlu
a1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBBdWRpbyBB
ZGRyZXNzIiwgIkNvcHkgQXVkaW8gQWRkcmVzcyBMb2NhdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
Q29udHJvbHMiLCAiTWVkaWEgQ29udHJvbHMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vcCIsICJNZWRpYSBM
b29wIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiRW50ZXIgRnVsbHNjcmVlbiIsICJWaWRlbyBFbnRlciBG
dWxsc2NyZWVuIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBsYXkiLCAiTWVkaWEgUGxheSBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBhdXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGF1c2UiLCAi
TWVkaWEgUGF1c2UgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiQ29weSIsICJDb3B5IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdHb0ZvcndhcmQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJGb3J3YXJkIiwgIkZv
cndhcmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlN0b3AiLCAiU3RvcCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWxvYWQiLCAiUmVsb2FkIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0N1dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1dCIsICJD
dXQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJQYXN0ZSIsICJQYXN0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi0jaWYgUExB
VEZPUk0oR1RLKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdEZWxldGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
ICJEZWxldGUiOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuICJJbnB1dCBNZXRob2RzIjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gIlVuaWNvZGUiOwotfQotCi0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gIlNlbGVjdCBBbGwiOwotfQotCi0jZW5kaWYKLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91
bmQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyBHdWVzc2VzIEZvdW5kIiwgIk5v
IEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgU3BlbGxpbmciLCAiSWdub3JlIFNw
ZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJMZWFybiBTcGVsbGluZyIsICJMZWFybiBTcGVsbGluZyBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQotewotI2lmIFBMQVRGT1JNKE1BQykgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VhcmNoUHJvdmlkZXJOYW1l
KEFkb3B0Q0YsIHdrQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCkpOwotICAg
IHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiU2VhcmNoIHdpdGgg
JUAiLCAiU2VhcmNoIHdpdGggc2VhcmNoIHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGgg
cHJvdmlkZXIgbmFtZSBpbnNlcnRlZCIpLCBzZWFyY2hQcm92aWRlck5hbWUuZ2V0KCkpOwotI2Vs
c2UKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VhcmNoIHdpdGggR29vZ2xlIiwgIlNlYXJj
aCB3aXRoIEdvb2dsZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotI2VuZGlmCi19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGlj
dGlvbmFyeShjb25zdCBTdHJpbmcmIHNlbGVjdGVkU3RyaW5nKQotewotI2lmIGRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0g
ICAgVU5VU0VEX1BBUkFNKHNlbGVjdGVkU3RyaW5nKTsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IiwgIkxvb2sgVXAgaW4gRGljdGlvbmFyeSBjb250ZXh0
IG1lbnUgaXRlbSIpOwotI2Vsc2UKLSNpZiBVU0UoQ0YpCi0gICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBzZWxlY3RlZENGU3RyaW5nKEFkb3B0Q0YsIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1l
bnVJdGVtKHNlbGVjdGVkU3RyaW5nKS5jcmVhdGVDRlN0cmluZygpKTsKLSAgICByZXR1cm4gZm9y
bWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCcJUDigJ0iLCAiTG9v
ayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQiKSwgc2VsZWN0ZWRDRlN0
cmluZy5nZXQoKSk7Ci0jZWxzZQotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVwIOKA
nDxzZWxlY3Rpb24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3Rl
ZCB3b3JkIikucmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBN
ZW51SXRlbShzZWxlY3RlZFN0cmluZykpOwotI2VuZGlmCi0jZW5kaWYKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJZ25vcmUgR3JhbW1hciBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdTcGVsbGluZ01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTcGVs
bGluZyBhbmQgR3JhbW1hciIsICJTcGVsbGluZyBhbmQgR3JhbW1hciBjb250ZXh0IHN1Yi1tZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQotewotICAgIGlmIChzaG93
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2hvdyBTcGVsbGluZyBhbmQgR3JhbW1h
ciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSGlkZSBT
cGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGlu
ZygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIERvY3VtZW50IE5vdyIsICJD
aGVjayBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVU
eXBpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBTcGVsbGluZyBXaGls
ZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcgd2hpbGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIsICJDaGVjayBncmFtbWFyIHdpdGgg
c3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z0JvbGQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJCb2xkIiwgIkJvbGQgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
SXRhbGljIiwgIkl0YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ091dGxpbmUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJP
dXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlv
bk1lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXJhZ3JhcGggRGlyZWN0aW9u
IiwgIlBhcmFncmFwaCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1RleHRE
aXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VsZWN0aW9uIERp
cmVjdGlvbiIsICJTZWxlY3Rpb24gZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdEZWZhdWx0RGlyZWN0aW9uKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGVmYXVs
dCIsICJEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0xl
ZnRUb1JpZ2h0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGVmdCB0byBSaWdodCIs
ICJMZWZ0IHRvIFJpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmlnaHQgdG8gTGVmdCIsICJSaWdodCB0byBMZWZ0
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLSNpZiBQTEFURk9STShNQUMpCi0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3Bv
dGxpZ2h0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VhcmNoIGluIFNwb3RsaWdo
dCIsICJTZWFyY2ggaW4gU3BvdGxpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dGb250
cygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgRm9udHMiLCAiU2hvdyBmb250
cyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTdHlsZXMuLi4iLCAiU3R5bGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dD
b2xvcnMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IENvbG9ycyIsICJTaG93
IGNvbG9ycyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiU3BlZWNoIiwgIlNwZWVjaCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJ
dGVtVGFnU3RhcnRTcGVha2luZygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0YXJ0
IFNwZWFraW5nIiwgIlN0YXJ0IHNwZWFraW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3BT
cGVha2luZygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0b3AgU3BlYWtpbmciLCAi
U3RvcCBzcGVha2luZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRv
bWF0aWNhbGx5KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29ycmVjdCBTcGVsbGlu
ZyBBdXRvbWF0aWNhbGx5IiwgIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAiU3Vic3RpdHV0aW9ucyBjb250ZXh0IHN1Yi1tZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoYm9vbCBzaG93KQotewotICAgIGlmIChzaG93
KSAKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3Vic3RpdHV0aW9ucyIsICJt
ZW51IGl0ZW0gdGl0bGUiKTsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSGlkZSBTdWJzdGl0
dXRpb25zIiwgIm1lbnUgaXRlbSB0aXRsZSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydENvcHlQYXN0ZSgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0IENvcHkvUGFzdGUiLCAiU21hcnQgQ29weS9QYXN0
ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlcygpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlNtYXJ0IFF1b3RlcyIsICJTbWFydCBRdW90ZXMgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnU21hcnREYXNoZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFy
dCBEYXNoZXMiLCAiU21hcnQgRGFzaGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlu
a3MoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBMaW5rcyIsICJTbWFydCBM
aW5rcyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJUZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFjZW1lbnQg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudSgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlRyYW5zZm9ybWF0aW9ucyIsICJUcmFuc2Zvcm1hdGlvbnMgY29u
dGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2UoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVyIENhc2UiLCAiTWFrZSBVcHBlciBDYXNlIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNlIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ0NhcGl0YWxpemUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDYXBpdGFs
aXplIiwgIkNhcGl0YWxpemUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25z
dCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIHJlcGxhY2VkU3RyaW5nOwotfQotCi0jZW5kaWYKLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAiSW5zcGVjdCBFbGVt
ZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6c2VhcmNoTWVudU5v
UmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTm8gcmVj
ZW50IHNlYXJjaGVzIiwgIkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVudSB0aGF0IGFwcGVhcnMg
d2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3aGVuIG5vIHNlYXJjaGVz
IGhhdmUgYmVlbiBwZXJmb3JtZWQiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlJlY2VudCBTZWFyY2hlcyIsICJsYWJlbCBmb3IgZmlyc3QgaXRlbSBpbiB0
aGUgbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGlt
YWdlLCB1c2VkIGFzIGVtYmVkZGVkIG1lbnUgdGl0bGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkK
LXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVzIiwgIm1l
bnUgaXRlbSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdzIGNvbnRl
bnRzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYV2ViQXJl
YVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJIVE1MIGNvbnRlbnQiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB3ZWIgYXJlYSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWExpbmtUZXh0KCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibGluayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IGxpbmsiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhMaXN0
TWFya2VyVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpc3QgbWFya2VyIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbGlzdCBtYXJrZXIiKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhJbWFnZU1hcFRleHQoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJpbWFnZSBtYXAiLCAiYWNjZXNzaWJpbGl0eSByb2xl
IGRlc2NyaXB0aW9uIGZvciBpbWFnZSBtYXAiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6QVhIZWFkaW5nVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImhlYWRpbmciLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoZWFkaW5n
cyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWERlZmluaXRp
b25MaXN0VGVybVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJtIiwgInRl
cm0gd29yZCBvZiBhIGRlZmluaXRpb24iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiZGVmaW5pdGlvbiIsICJkZWZpbml0aW9uIHBocmFzZSIpOwotfQot
Ci0jaWYgUExBVEZPUk0oTUFDKQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
QVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQotewotICAgIGlm
IChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uQWxlcnQiKQotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiYWxlcnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0
cyBhcyBhbiBhbGVydC4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFs
ZXJ0RGlhbG9nIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IGRpYWxvZyIs
ICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFsZXJ0IGRpYWxv
Zy4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkRpYWxvZyIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5
IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJB
UklBQXBwbGljYXRpb25Mb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibG9nIiwg
IkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBjb25zb2xlIGxvZy4i
KTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbk1hcnF1ZWUiKQotICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygibWFycXVlZSIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkg
Z3JvdXAgdGhhdCBhY3RzIGFzIGEgbWFycXVlZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09
ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
YXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFB
cHBsaWNhdGlvblRpbWVyIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRpbWVyIiwg
IkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gdXBkYXRpbmcgdGlt
ZXIuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50IikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoImRvY3VtZW50IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBn
cm91cCB0aGF0IGFjdHMgYXMgYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09
ICJBUklBRG9jdW1lbnRBcnRpY2xlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFy
dGljbGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhcnRp
Y2xlLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudE5vdGUiKQotICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibm90ZSIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkg
Z3JvdXAgdGhhdCBhY3RzIGFzIGEgbm90ZSBpbiBhIGRvY3VtZW50LiIpOyAgICAKLSAgICBpZiAo
YXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudFJlZ2lvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJyZWdpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBh
cyBhIGRpc3RpbmN0IHJlZ2lvbiBpbiBhIGRvY3VtZW50LiIpOyAgICAKLSAgICBpZiAoYXJpYVR5
cGUgPT0gIkFSSUFMYW5kbWFya0FwcGxpY2F0aW9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImFwcGxpY2F0aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYW4gYXBwbGljYXRpb24uIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxh
bmRtYXJrQmFubmVyIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJhbm5lciIsICJB
biBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgYmFubmVyLiIpOyAgICAK
LSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0NvbXBsZW1lbnRhcnkiKQotICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiY29tcGxlbWVudGFyeSIsICJBbiBBUklBIGFjY2Vzc2li
aWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgcmVnaW9uIG9mIGNvbXBsZW1lbnRhcnkgaW5mb3Jt
YXRpb24uIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQ29udGVudElu
Zm8iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY29udGVudCIsICJBbiBBUklBIGFj
Y2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBjb250ZW50LiIpOyAgICAKLSAgICBpZiAo
YXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya01haW4iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibWFpbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBpcyB0aGUgbWFp
biBwb3J0aW9uIG9mIHRoZSB3ZWJzaXRlLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFS
SUFMYW5kbWFya05hdmlnYXRpb24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibmF2
aWdhdGlvbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyB0aGUg
bWFpbiBuYXZpZ2F0aW9uIGVsZW1lbnRzIG9mIGEgd2Vic2l0ZS4iKTsgICAgCi0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5z
IGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUg
PT0gIkFSSUFVc2VySW50ZXJmYWNlVG9vbHRpcCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJ0b29sdGlwIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMg
YSB0b29sdGlwLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFUYWJQYW5lbCIpCi0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0YWIgcGFuZWwiLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIGNvbnRlbnQgb2YgYSB0YWIuIik7Ci0gICAg
aWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRNYXRoIikKLSAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIm1hdGgiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFp
bnMgbWF0aGVtYXRpY2FsIHN5bWJvbHMuIik7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotI2Vu
ZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQnV0dG9uQWN0aW9u
VmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInByZXNzIiwgIlZlcmIgc3RhdGlu
ZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgYnV0dG9uIGlzIHByZXNzZWQsIGFz
IHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5OjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpIAotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJzZWxlY3QiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9j
Y3VyIHdoZW4gYSByYWRpbyBidXR0b24gaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmls
aXR5Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYVGV4dEZp
ZWxkQWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRlIiwg
IlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVs
ZCBpcyBzZWxlY3RlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInVuY2hlY2siLCAiVmVyYiBzdGF0aW5nIHRo
ZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBjaGVja2VkIGNoZWNrYm94IGlzIGNsaWNr
ZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRo
YXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1
c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6QVhNZW51TGlzdEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuICJzZWxlY3QiOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5OjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiAic2VsZWN0IjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6QVhMaW5rQWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4g
YSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptaXNzaW5nUGx1Z2luVGV4dCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0IHRv
IGJlIHVzZWQgd2hlbiBhIHBsdWdpbiBpcyBtaXNzaW5nIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNyYXNoZWRQbHVnaW5UZXh0KCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiUGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCBp
ZiBwbHVnaW4gaG9zdCBwcm9jZXNzIGhhcyBjcmFzaGVkIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVt
YmVyT2ZGaWxlcykKLXsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9T
VFJJTkcoIiVkIGZpbGVzIiwgIkxhYmVsIHRvIGRlc2NyaWJlIHRoZSBudW1iZXIgb2YgZmlsZXMg
c2VsZWN0ZWQgaW4gYSBmaWxlIHVwbG9hZCBjb250cm9sIHRoYXQgYWxsb3dzIG11bHRpcGxlIGZp
bGVzIiksIG51bWJlck9mRmlsZXMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojp1bmtub3duRmlsZVNpemVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlzdGluZyBpdGVt
Iik7Ci19Ci0KLSNpZiBQTEFURk9STShXSU4pCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OnVwbG9hZEZpbGVUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiAidXBsb2FkIjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6YWxsRmlsZXNUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAi
YWxsIGZpbGVzIjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmJ1aWx0SW5QREZQbHVnaW5OYW1lKCkKLXsKLSAg
ICAvLyBBbHNvIGV4cG9zZWQgdG8gRE9NLgotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJXZWJL
aXQgYnVpbHQtaW4gUERGIiwgIlBzZXVkbyBwbHVnLWluIG5hbWUsIHZpc2libGUgaW4gSW5zdGFs
bGVkIFBsdWctaW5zIHBhZ2UgaW4gU2FmYXJpLiIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCi17Ci0gICAgLy8g
QWxzbyBleHBvc2VkIHRvIERPTS4KLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUG9ydGFibGUg
RG9jdW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkgdHlwZSBzdXBwb3J0
ZWQgYnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBw
YWdlIGluIFNhZmFyaS4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6a2V5Z2VuTWVudUl0ZW01MTIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCI1MTIg
KExvdyBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6a2V5Z2VuTWVudUl0ZW0x
MDI0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAyNCAoTWVkaXVtIEdyYWRlKSIs
ICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjprZXlnZW5NZW51SXRlbTIwNDgoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCIyMDQ4IChIaWdoIEdyYWRlKSIsICJNZW51IGl0ZW0gdGl0
bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5OjprZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkK
LXsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRlN0cmluZyhBZG9wdENGLCBob3N0
LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VC
X1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBrZXljaGFpbiBrZXkgZ2VuZXJhdGVk
IGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0cmluZy5nZXQoKSk7Ci19Ci0KLSNpZiBQTEFU
Rk9STShJT1MpCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpodG1sU2VsZWN0
TXVsdGlwbGVJdGVtcyhpbnQgY291bnQpCi17Ci0gICAgc3dpdGNoIChjb3VudCkgewotICAgIGNh
c2UgMDoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjAgSXRlbXMiLCAiUHJlc2VudCB0
aGUgZWxlbWVudCA8c2VsZWN0IG11bHRpcGxlPiB3aGVuIG5vIDxvcHRpb24+IGl0ZW1zIGFyZSBz
ZWxlY3RlZCAoaU9TIG9ubHkpIik7Ci0gICAgY2FzZSAxOgotICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiMSBJdGVtIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBtdWx0aXBsZT4g
d2hlbiBhIHNpbmdsZSA8b3B0aW9uPiBpcyBzZWxlY3RlZCAoaU9TIG9ubHkpIik7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5H
KCIlZCBJdGVtcyIsICJQcmVzZW50IHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgPG9wdGlvbj4gaXRl
bXMgaW4gYSA8c2VsZWN0IG11bHRpcGxlPiBlbGVtZW50IChpT1Mgb25seSkiKSwgY291bnQpOwot
ICAgIH0KLX0KLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFD
KQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjppbWFnZVRpdGxlKGNvbnN0
IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0jaWYgVVNFKENGKQot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCi0gICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBmaWxlbmFtZUNGU3RyaW5nKEFkb3B0Q0YsIGZpbGVuYW1lLmNyZWF0ZUNGU3RyaW5nKCkp
OwotICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gbG9jYWxlKEFkb3B0Q0YsIENGTG9jYWxlQ29w
eUN1cnJlbnQoKSk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyRm9ybWF0dGVyUmVmPiBmb3JtYXR0
ZXIoQWRvcHRDRiwgQ0ZOdW1iZXJGb3JtYXR0ZXJDcmVhdGUoMCwgbG9jYWxlLmdldCgpLCBrQ0ZO
dW1iZXJGb3JtYXR0ZXJEZWNpbWFsU3R5bGUpKTsKLQotICAgIGludCB3aWR0aEludCA9IHNpemUu
d2lkdGgoKTsKLSAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+IHdpZHRoKEFkb3B0Q0YsIENGTnVt
YmVyQ3JlYXRlKDAsIGtDRk51bWJlckludFR5cGUsICZ3aWR0aEludCkpOwotICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gd2lkdGhTdHJpbmcoQWRvcHRDRiwgQ0ZOdW1iZXJGb3JtYXR0ZXJDcmVh
dGVTdHJpbmdXaXRoTnVtYmVyKDAsIGZvcm1hdHRlci5nZXQoKSwgd2lkdGguZ2V0KCkpKTsKLQot
ICAgIGludCBoZWlnaHRJbnQgPSBzaXplLmhlaWdodCgpOwotICAgIFJldGFpblB0cjxDRk51bWJl
clJlZj4gaGVpZ2h0KEFkb3B0Q0YsIENGTnVtYmVyQ3JlYXRlKDAsIGtDRk51bWJlckludFR5cGUs
ICZoZWlnaHRJbnQpKTsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhlaWdodFN0cmluZyhB
ZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1iZXIoMCwgZm9ybWF0
dGVyLmdldCgpLCBoZWlnaHQuZ2V0KCkpKTsKLQotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX1NUUklORygiJUAgJUDDlyVAIHBpeGVscyIsICJ3aW5kb3cgdGl0bGUgZm9y
IGEgc3RhbmRhbG9uZSBpbWFnZSAodXNlcyBtdWx0aXBsaWNhdGlvbiBzeW1ib2wsIG5vdCB4KSIp
LCBmaWxlbmFtZUNGU3RyaW5nLmdldCgpLCB3aWR0aFN0cmluZy5nZXQoKSwgaGVpZ2h0U3RyaW5n
LmdldCgpKTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmaWxlbmFtZUNGU3Ry
aW5nKEFkb3B0Q0YsIGZpbGVuYW1lLmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJUAgJWTDlyVkIHBpeGVscyIsICJ3aW5k
b3cgdGl0bGUgZm9yIGEgc3RhbmRhbG9uZSBpbWFnZSAodXNlcyBtdWx0aXBsaWNhdGlvbiBzeW1i
b2wsIG5vdCB4KSIpLCBmaWxlbmFtZUNGU3RyaW5nLmdldCgpLCBzaXplLndpZHRoKCksIHNpemUu
aGVpZ2h0KCkpOwotI2VuZGlmCi0jZWxzZQotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJp
bmcoV0VCX1VJX1NUUklORygiPGZpbGVuYW1lPiAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRs
ZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90
IHgpIiksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkucmVwbGFjZSgiPGZpbGVuYW1lPiIs
IGZpbGVuYW1lKTsKLSNlbmRpZgotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5OjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiTG9hZGluZy4uLiIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdo
ZW4gdGhlIG1lZGlhIGlzIGxvYWRpbmciKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6bWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxpdmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNvbnRyb2xsZXIg
c3RhdHVzIG1lc3NhZ2Ugd2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVs
ZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09ICJBdWRp
b0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXVkaW8gZWxlbWVudCBj
b250cm9sbGVyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxl
bWVudCBjb250cm9sbGVyIik7Ci0gICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ2aWRlbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB2aWRlbyBlbGVtZW50IGNvbnRyb2xsZXIi
KTsKLSAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJtdXRlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbXV0ZSBi
dXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInVubXV0ZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHR1cm4gbXV0ZSBvZmYgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24i
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicGxheSIsICJhY2Nlc3NpYmlsaXR5IHJv
bGUgZGVzY3JpcHRpb24gZm9yIHBsYXkgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlBhdXNl
QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdXNlIiwgImFjY2Vzc2li
aWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGF1c2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUg
PT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtb3ZpZSB0aW1lIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgc2xpZGVyIik7Ci0g
ICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInRpbWVsaW5lIHNsaWRlciB0aHVtYiIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHRpbWVsaW5lIHRodW1iIik7Ci0gICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIp
Ci0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBzZWVrIGJhY2sgMzAgc2Vjb25kcyBidXR0b24i
KTsKLSAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJyZXR1cm4gdG8gcmVhbHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciByZXR1cm4gdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiZWxhcHNlZCB0aW1lIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
ZWxhcHNlZCB0aW1lIGRpc3BsYXkiKTsKLSAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rp
c3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVtYWluaW5nIHRpbWUiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lIHJlbWFpbmluZyBkaXNwbGF5
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygic3RhdHVzIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
bW92aWUgc3RhdHVzIik7Ci0gICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQotICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZnVsbHNjcmVlbiIsICJhY2Nlc3NpYmlsaXR5IHJv
bGUgZGVzY3JpcHRpb24gZm9yIGVudGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7Ci0gICAgaWYgKG5h
bWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImZhc3QgZm9yd2FyZCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGZhc3Qg
Zm9yd2FyZCBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQotICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCByZXZlcnNlIiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCByZXZlcnNlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1l
ID09ICJTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygic2hvdyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0
aW9uIGZvciBzaG93IGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAi
SGlkZUNsb3NlZENhcHRpb25zQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImhpZGUgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0KLSAgICAvLyBGSVhNRTogdGhlIENv
bnRyb2xzUGFuZWwgY29udGFpbmVyIHNob3VsZCBuZXZlciBiZSB2aXNpYmxlIGluIHRoZSBhY2Nl
c3NpYmlsaXR5IGhpZXJhcmNoeS4KLSAgICBpZiAobmFtZSA9PSAiQ29udHJvbHNQYW5lbCIpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgbmFt
ZSkKLXsKLSAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImF1ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBk
aXNwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVu
dCBjb250cm9sbGVyIik7Ci0gICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFu
ZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZp
ZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJV
bk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIGF1ZGlv
IHRyYWNrcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBidXR0b24iKTsK
LSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJiZWdpbiBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxheSBi
dXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygicGF1c2UgcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQg
Zm9yIHBhdXNlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQotICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRl
clRodW1iIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJi
ZXIgdGh1bWIiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0
aHVtYiIpOwotICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygic2VlayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIGp1bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOwotICAgIGlmIChu
YW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciByZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBidXR0
b24iKTsKLSAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChu
YW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJudW1iZXIgb2Ygc2Vjb25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIHJlbWFpbmluZyB0aW1lIGRpc3BsYXkiKTsKLSAgICBpZiAobmFtZSA9
PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50
IG1vdmllIHN0YXR1cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3RhdHVz
IGRpc3BsYXkiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQotICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygic2VlayBxdWlja2x5IGJhY2siLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIGZhc3QgcmV3aW5kIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJTZWVr
Rm9yd2FyZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNr
bHkgZm9yd2FyZCIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJkIGJ1
dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygic3RhcnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJp
bGl0eSBoZWxwIHRleHQgZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygic3RvcCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmls
aXR5IGhlbHAgdGV4dCBmb3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
KGZsb2F0IHRpbWUpCi17Ci0gICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImluZGVmaW5pdGUgdGltZSIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4
dCBmb3IgYW4gaW5kZWZpbml0ZSBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUiKTsKLQotICAg
IGludCBzZWNvbmRzID0gc3RhdGljX2Nhc3Q8aW50PihmYWJzZih0aW1lKSk7IAotICAgIGludCBk
YXlzID0gc2Vjb25kcyAvICg2MCAqIDYwICogMjQpOwotICAgIGludCBob3VycyA9IHNlY29uZHMg
LyAoNjAgKiA2MCk7Ci0gICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOwotICAg
IHNlY29uZHMgJT0gNjA7Ci0KLSAgICBpZiAoZGF5cykKLSAgICAgICAgcmV0dXJuIGZvcm1hdExv
Y2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIGRheXMgJTIkZCBob3VycyAlMyRkIG1p
bnV0ZXMgJTQkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBj
b250cm9sbGVyIHRpbWUgdmFsdWUgPj0gMSBkYXkiKSwgZGF5cywgaG91cnMsIG1pbnV0ZXMsIHNl
Y29uZHMpOwotICAgIGlmIChob3VycykKLSAgICAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0
cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIGhvdXJzICUyJGQgbWludXRlcyAlMyRkIHNlY29uZHMi
LCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1
ZSA+PSA2MCBtaW51dGVzIiksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKLSAgICBpZiAobWlu
dXRlcykKLSAgICAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5H
KCIlMSRkIG1pbnV0ZXMgJTIkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgc2Vjb25kcyIpLCBtaW51dGVzLCBz
ZWNvbmRzKTsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkco
IiUxJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJv
bGxlciB0aW1lIHZhbHVlIDwgNjAgc2Vjb25kcyIpLCBzZWNvbmRzKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdU
ZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygidmFsdWUgbWlzc2luZyIsICJWYWxp
ZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhh
dmUgbm8gdmFsdWUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygidHlwZSBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZv
cm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1p
c21hdGNoVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0
Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmlu
ZyBhIGNvbnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1Rl
eHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0b28gbG9uZyIsICJWYWxpZGF0aW9u
IG1lc3NhZ2UgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50cyB3aXRoIGEgdmFsdWUgbG9uZ2VyIHRo
YW4gbWF4aW11bSBhbGxvd2VkIGxlbmd0aCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJhbmdlIHVuZGVyZmxvdyIsICJWYWxpZGF0aW9uIG1l
c3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBsb3dlciB0aGFuIGFsbG93
ZWQgbWluaW11bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygicmFuZ2Ugb3ZlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBm
b3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgaGlnaGVyIHRoYW4gYWxsb3dlZCBtYXhpbXVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInN0ZXAgbWlz
bWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGgg
dmFsdWUgbm90IHJlc3BlY3RpbmcgdGhlIHN0ZXAgYXR0cmlidXRlIik7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZhNGQ5YzVjM2NkY2U5ZTIxOWIy
NGViMzQxYTdmOWNjZmUyN2U2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaAorKysgL2Rldi9udWxsCkBAIC0xLDE5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3lfaAotI2RlZmluZSBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3lfaAotCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0K
LSNpbmNsdWRlICJMb2NhbGl6YXRpb25TdHJhdGVneS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneSA6IHB1YmxpYyBMb2NhbGl6YXRpb25TdHJhdGVneSB7Ci1wdWJsaWM6Ci0g
ICAgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5KCk7Ci0KLSAgICBzdGF0aWMgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5JiBzaGFyZWQoKTsKLQotICAgIHZpcnR1YWwgU3RyaW5nIGlucHV0
RWxlbWVudEFsdFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRM
YWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigp
OwotICAgIHZpcnR1YWwgU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBk
ZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1
YWwgU3RyaW5nIGNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKTsKLSNlbmRpZgotI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdEb3dubG9hZExpbmtUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKTsKLSNpZiBQTEFURk9STShR
VCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0Ns
aXBib2FyZCgpOwotI2VuZGlmCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlbkZyYW1lSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNr
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0N1dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1Bhc3RlKCk7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0RlbGV0ZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0lucHV0TWV0aG9kcygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1VuaWNvZGUoKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCi0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCk7Ci0jZW5kaWYK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpOwotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeShjb25zdCBTdHJp
bmcmIHNlbGVjdGVkU3RyaW5nKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTGluaygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9y
ZUdyYW1tYXIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGlu
Z01lbnUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxp
bmdQYW5lbChib29sIHNob3cpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
aGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0JvbGQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJ
dGFsaWMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24o
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCk7Ci0jaWYg
UExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJj
aEluU3BvdGxpZ2h0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hv
d0ZvbnRzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9ycygpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcFNwZWFraW5nKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMo
Ym9vbCBzaG93KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydENv
cHlQYXN0ZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVv
dGVzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudSgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2UoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiBy
ZXBsYWNlZFN0cmluZyk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdJbnNwZWN0RWxlbWVudCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4o
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7Ci0jZW5kaWYgLy8gRU5B
QkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50
U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJj
aGVzVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJj
aGVzVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYV2ViQXJlYVRleHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBBWExpbmtUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaXN0TWFya2Vy
VGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgQVhIZWFkaW5nVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5pdGlv
bkxpc3RUZXJtVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZp
bml0aW9uVGV4dCgpOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEFS
SUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpOwotI2VuZGlmCi0gICAg
dmlydHVhbCBTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFRleHRGaWVs
ZEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlv
blZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
YigpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYTGlua0FjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtaXNzaW5nUGx1Z2lu
VGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVz
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyB1bmtub3duRmlsZVNpemVUZXh0KCk7Ci0jaWYgUExBVEZP
Uk0oV0lOKQotICAgIHZpcnR1YWwgU3RyaW5nIHVwbG9hZEZpbGVUZXh0KCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgYWxsRmlsZXNUZXh0KCk7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0gICAg
dmlydHVhbCBTdHJpbmcgYnVpbHRJblBERlBsdWdpbk5hbWUoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGtleWdl
bk1lbnVJdGVtNTEyKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0yMDQ4KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpOwotI2lmIFBM
QVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIFN0cmluZyBodG1sU2VsZWN0TXVsdGlwbGVJdGVtcyhp
bnQpOwotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0g
ICAgdmlydHVhbCBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25z
dCBJbnRTaXplJik7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRl
VGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0
ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50
U3RyaW5nKGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlh
Q29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0KLSNl
bmRpZiAvLyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3lfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDhmYWI3NjRiODZhZWVjZmRlODAwMzhmNWQyZjMyOTE3ZjUyOGY5ZGEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaAorKysgL2Rldi9udWxsCkBAIC0xLDIwNyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgTG9jYWxpemF0aW9uU3RyYXRlZ3lfaAotI2RlZmluZSBMb2NhbGl6YXRpb25TdHJhdGVneV9o
Ci0KLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW50U2l6ZTsKLQotY2xhc3MgTG9j
YWxpemF0aW9uU3RyYXRlZ3kgewotcHVibGljOiAgICAKLSAgICB2aXJ0dWFsIFN0cmluZyBpbnB1
dEVsZW1lbnRBbHRUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHJlc2V0QnV0dG9uRGVm
YXVsdExhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJjaGFibGVJbmRleEludHJv
ZHVjdGlvbigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFi
ZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xh
YmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExh
YmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRM
YWJlbCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0
KCkgPSAwOwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvcHlJbWFn
ZVVua25vd25GaWxlTGFiZWwoKSA9IDA7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdX
aW5kb3coKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxv
YWRMaW5rVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlMaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpID0gMDsKLSNp
ZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCi0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKSA9
IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJh
bWVJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFj
aygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkgPSAwOwotI2lmIFBMQVRGT1JNKEdUSykK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWxldGUoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGUoKSA9IDA7Ci0jZW5kaWYK
LSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCi0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCkgPSAwOwotI2VuZGlm
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmco
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGlu
ZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0
aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVj
a0dyYW1tYXJXaXRoU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRm9udE1lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQm9sZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJ
dGFsaWMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5kZXJs
aW5lKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVj
dGlvbk1lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4
dERpcmVjdGlvbk1lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRGVmYXVsdERpcmVjdGlvbigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdMZWZ0VG9SaWdodCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdSaWdodFRvTGVmdCgpID0gMDsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0eWxlcygpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25z
TWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vi
c3RpdHV0aW9ucyhib29sIHNob3cpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTbWFydENvcHlQYXN0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTbWFydFF1b3RlcygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTbWFydERhc2hlcygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTbWFydExpbmtzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2UoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNl
ZFN0cmluZykgPSAwOwotI2VuZGlmCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2Fy
ZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUNvbnRyb2xzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdFbnRlclZpZGVvRnVsbHNjcmVlbigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBsYXkoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnSW5zcGVjdEVsZW1lbnQoKSA9IDA7Ci0jZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVO
VVMpCi0KLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1Rl
eHQoKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBBWFdlYkFyZWFUZXh0KCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIEFYTGlua1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhM
aXN0TWFya2VyVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEltYWdlTWFwVGV4dCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKSA9IDA7Ci0KLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBT
dHJpbmcmIGFyaWFUeXBlKSA9IDA7Ci0jZW5kaWYKLSAgICAKLSAgICB2aXJ0dWFsIFN0cmluZyBB
WEJ1dHRvbkFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhSYWRpb0J1dHRv
bkFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25W
ZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
YigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
YigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0QWN0aW9uVmVyYigpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIEFYTGlua0FjdGlvblZlcmIoKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0
cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjcmFzaGVk
UGx1Z2luVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRU
ZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB1bmtu
b3duRmlsZVNpemVUZXh0KCkgPSAwOwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIHZpcnR1YWwg
U3RyaW5nIHVwbG9hZEZpbGVUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGFsbEZpbGVz
VGV4dCgpID0gMDsKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3Ry
aW5nIGJ1aWx0SW5QREZQbHVnaW5OYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHBkZkRv
Y3VtZW50VHlwZURlc2NyaXB0aW9uKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGtleWdlbk1l
bnVJdGVtNTEyKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGtleWdlbk1lbnVJdGVtMTAyNCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3Qp
ID0gMDsKLSNlbmRpZgotCi0gICAgdmlydHVhbCBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJp
bmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0
cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcm
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhl
bHBUZXh0KGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRN
ZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCkgPSAwOwotCi0gICAgdmlydHVhbCBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgp
ID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkxvY2FsaXphdGlvblN0cmF0ZWd5KCkK
LSAgICB7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
VVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0KLSNlbmRpZiAvLyBMb2NhbGl6YXRpb25TdHJhdGVn
eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4
IDE0MDliYmYzMWIxYWIyZTNiNzRlZTM0MDU3YjY0ZTdlODBiY2RlMGMuLjliZGMzZTg5NWE5OTkz
ZDMzODNlMDdmZmZhNTg1NDk1ODZkMTZiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDksIDIwMTAsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwK
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDcwMiArMjcsOTMxIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogCi0jaW5jbHVkZSAiRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpZiBVU0UoQ0YpCisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorI2VuZGlmCisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KKwor
I2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJ
RVMpCisvLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3byByZWFzb25zOgorLy8g
IDEpIEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBmb3JtYXQg
c3RyaW5nLgorLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRkIHN5bnRheC4KKy8vIE5v
dGUgdGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIg
dG8gdmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQorLy8gdHlwZSBhY2NvcmRpbmcg
dG8gc2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFyZC4KK3N0YXRpYyBTdHJp
bmcgZm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4uLikKK3sKKyNpZiBVU0Uo
Q0YpCisgICAgdmFfbGlzdCBhcmd1bWVudHM7CisgICAgdmFfc3RhcnQoYXJndW1lbnRzLCBmb3Jt
YXQpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZTdHJpbmcoQWRvcHRDRiwg
Zm9ybWF0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVz
dWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygwLCAwLCBm
b3JtYXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7CisgICAgdmFfZW5kKGFyZ3VtZW50cyk7
CisgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZm9ybWF0OworI2VuZGlmCit9CiAKLXN0YXRpYyBpbmxpbmUgTG9jYWxpemF0
aW9uU3RyYXRlZ3kqIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkKKyNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCitzdGF0
aWMgU3RyaW5nIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKGNvbnN0IFN0cmluZyYg
b3JpZ2luYWwpCiB7Ci0gICAgaWYgKGhhc1BsYXRmb3JtU3RyYXRlZ2llcygpKQotICAgICAgICBy
ZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CisgICAg
aWYgKG9yaWdpbmFsLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG9yaWdpbmFsOworCisgICAg
Ly8gVHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNp
c3RlbmN5IHdpdGggQXBwS2l0LgorICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVz
dGVyc0luTG9va3VwTWVudUl0ZW0gPSAyNDsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgZWxsaXBzaXMsICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7CiAKLSAgICByZXR1cm4gJkRl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6c2hhcmVkKCk7CisgICAgU3RyaW5nIHRyaW1tZWQg
PSBvcmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJh
Y3RlcnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJl
ck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOworICAgIHJldHVybiBudW1iZXJP
ZkNoYXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQgOiB0cmltbWVkLmxlZnQo
bnVtYmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwogfQorI2VuZGlmCisKKyNpZiBVU0UoUExB
VEZPUk1fU1RSQVRFR0lFUykKIAogU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5pbnB1dEVsZW1lbnRBbHRUZXh0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVt
ZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUs
IG9yIHZhbHVlIik7CiB9CiAKIFN0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnJlc2V0QnV0dG9uRGVmYXVsdExhYmVs
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwgZm9y
IFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAKIFN0cmluZyBzZWFy
Y2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5zZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3b3Jk
czogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dCB0aGF0IGFwcGVhcnMgYXQgdGhl
IHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0gb2YgYSAnc2Vh
cmNoYWJsZSBpbmRleCciKTsKIH0KIAogU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnN1Ym1pdEJ1dHRvbkRlZmF1
bHRMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBs
YWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAKIFN0
cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9v
c2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKIH0KIAogU3RyaW5nIGZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5maWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBmaWxl
IGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQgYmUg
YXMgc2hvcnQgYXMgcG9zc2libGUuIik7CiB9CiAKIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2Vs
ZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZpbGVC
dXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5v
IGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4g
SFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKIH0KIAogU3RyaW5nIGZpbGVC
dXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmls
ZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFu
ZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwogfQog
CiBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+
IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKIH0KIAogI2lmIFBMQVRGT1JN
KE1BQykKIFN0cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVua25vd24gZmlsZW5hbWUiKTsKIH0K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBpbiBO
ZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlua2Vk
IEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlMaW5rVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
T3BlbkltYWdlSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBJ
bWFnZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRv
RGlzaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
RG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQoKTsKLX0KLQotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKEVGTCkKLVN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxU
b0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQotI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRv
dygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRl
bVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9w
ZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJk
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZvcndhcmQiLCAiRm9yd2FyZCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0b3Ao
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RvcCIsICJTdG9wIGNvbnRleHQgbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ3V0KCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAog
I2lmIFBMQVRGT1JNKFFUKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Nl
bGVjdEFsbCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJTZWxlY3QgQWxs
IjsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdOb0d1ZXNzZXNGb3VuZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyBHdWVzc2Vz
IEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBTcGVs
bGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TGVhcm5TcGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiTGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJ
blNwb3RsaWdodCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdodCBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hX
ZWIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWIoKTsKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlE
ZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICByZXR1cm4gZm9ybWF0TG9j
YWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRo
IHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5z
ZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKKyNlbHNlCisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUgY29u
dGV4dCBtZW51IGl0ZW0iKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcElu
RGljdGlvbmFyeShzZWxlY3RlZFN0cmluZyk7CisjaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBVTlVTRURfUEFS
QU0oc2VsZWN0ZWRTdHJpbmcpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVwIGlu
IERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtIik7
CisjZWxzZQorI2lmIFVTRShDRikKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlbGVjdGVk
Q0ZTdHJpbmcoQWRvcHRDRiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0
ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX1NUUklORygiTG9vayBVcCDigJwlQOKAnSIsICJMb29rIFVwIGNvbnRleHQg
bWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLCBzZWxlY3RlZENGU3RyaW5nLmdldCgpKTsK
KyNlbHNlCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCcPHNlbGVjdGlvbj7i
gJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQiKS5yZXBs
YWNlKCI8c2VsZWN0aW9uPiIsIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKHNlbGVj
dGVkU3RyaW5nKSk7CisjZW5kaWYKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnT3BlbkxpbmsoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVu
IExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJZ25vcmUgR3JhbW1hciBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnU3BlbGxpbmdNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWxsaW5nIGFu
ZCBHcmFtbWFyIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIp
OwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBz
aG93KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChzaG93KTsKKyAgICBpZiAoc2hvdykKKyAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVt
IHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5kIEdy
YW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDaGVja1NwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5
cGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcgd2hpbGUg
dHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwg
IkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7CiB9
CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRz
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnU2hvd0ZvbnRzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgRm9udHMiLCAi
U2hvdyBmb250cyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdCb2xkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJC
b2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0l0YWxpYygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJdGFs
aWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdVbmRlcmxpbmUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
ICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3R5
bGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0eWxlcy4uLiIsICJTdHlsZXMgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xv
cnMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdTaG93Q29sb3JzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgQ29sb3Jz
IiwgIlNob3cgY29sb3JzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTcGVlY2giLCAiU3BlZWNoIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RhcnQgU3BlYWtpbmciLCAiU3RhcnQgc3BlYWtp
bmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0
b3BTcGVha2luZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJT
dG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KICNl
bmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdX
cml0aW5nRGlyZWN0aW9uTWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXJhZ3Jh
cGggRGlyZWN0aW9uIiwgIlBhcmFncmFwaCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Rl
eHREaXJlY3Rpb25NZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlvbiBE
aXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0
RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVmYXVs
dCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUmln
aHRUb0xlZnQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmlnaHQgdG8gTGVmdCIsICJS
aWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMp
CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkiLCAiQ29ycmVjdCBTcGVsbGluZyBB
dXRvbWF0aWNhbGx5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAiU3Vic3RpdHV0aW9ucyBjb250ZXh0
IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJz
dGl0dXRpb25zKGJvb2wgc2hvdykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoc2hvdyk7CisgICAgaWYgKHNo
b3cpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFN1YnN0aXR1dGlvbnMiLCAi
bWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vic3Rp
dHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0Q29weVBhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiU21hcnQgQ29weS9QYXN0ZSIsICJTbWFydCBDb3B5L1Bhc3RlIGNvbnRleHQgbWVu
dSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlcygpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0UXVvdGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0IFF1b3RlcyIsICJT
bWFydCBRdW90ZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3MgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBs
YWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJU
ZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFjZW1lbnQgY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdUcmFu
c2Zvcm1hdGlvbnNNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRyYW5zZm9ybWF0
aW9ucyIsICJUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7CiB9CiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVyIENhc2UiLCAiTWFrZSBVcHBlciBD
YXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
YWtlTG93ZXJDYXNlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29u
dGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNlIGNvbnRleHQgbWVudSBpdGVtIik7
CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDYXBpdGFsaXplIiwgIkNhcGl0YWxpemUgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJh
Y2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhyZXBsYWNlZFN0cmlu
Zyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVwbGFjZWRTdHJpbmc7CiB9
CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVvIGlu
IE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93IiwgIk9wZW4g
QXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1Rv
Q2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRkcmVz
cyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDb3B5
IEF1ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQgbWVu
dSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRy
b2xzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
b250cm9scyIsICJNZWRpYSBDb250cm9scyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxz
Y3JlZW4oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJFbnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBsYXkgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1
c2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwgIk1l
ZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYU11dGUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
TXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAgICAgCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAiSW5zcGVjdCBFbGVtZW50
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKIAogU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4
dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyByZWNlbnQgc2VhcmNoZXMiLCAiTGFi
ZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRo
ZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBiZWVuIHBlcmZvcm1l
ZCIpOwogfQogCi1TdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCAoKQorU3RyaW5n
IHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5zZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0ICgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0g
aW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVs
ZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7CiB9CiAKIFN0cmluZyBzZWFy
Y2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5zZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVzIiwgIm1lbnUgaXRlbSBp
biBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdzIGNvbnRlbnRzIik7CiB9
CiAKIFN0cmluZyBBWFdlYkFyZWFUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+QVhXZWJBcmVhVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJIVE1M
IGNvbnRlbnQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB3ZWIgYXJlYSIp
OwogfQogCiBTdHJpbmcgQVhMaW5rVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPkFYTGlua1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygibGluayIs
ICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpbmsiKTsKIH0KIAogU3RyaW5n
IEFYTGlzdE1hcmtlclRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5BWExpc3RNYXJrZXJUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpc3QgbWFy
a2VyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbGlzdCBtYXJrZXIiKTsK
IH0KIAogU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+QVhJbWFnZU1hcFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
aW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1hZ2UgbWFw
Iik7CiB9CiAKIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+QVhIZWFkaW5nVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGluZ3Mi
KTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJtIiwgInRlcm0gd29yZCBvZiBhIGRlZmluaXRpb24i
KTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9u
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkZWZpbml0aW9uIiwgImRlZmluaXRp
b24gcGhyYXNlIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgQVhBUklBQ29udGVu
dEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5BWEFSSUFDb250ZW50R3JvdXBUZXh0KGFyaWFUeXBlKTsKKyAgICBp
ZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0IikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYW4gYWxlcnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25B
bGVydERpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCBkaWFsb2ci
LCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFs
b2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9nLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAi
QVJJQUFwcGxpY2F0aW9uTG9nIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxvZyIs
ICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgY29uc29sZSBsb2cu
Iik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25NYXJxdWVlIikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5
IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJB
UklBQXBwbGljYXRpb25TdGF0dXMiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXBw
bGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMg
YXMgYSBzdGF0dXMgdXBkYXRlLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0
aW9uVGltZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZXIiLCAiQW4gQVJJ
QSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiB1cGRhdGluZyB0aW1lci4iKTsK
KyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBh
Y3RzIGFzIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRB
cnRpY2xlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFydGljbGUiLCAiQW4gQVJJ
QSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhcnRpY2xlLiIpOworICAgIGlm
IChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50Tm90ZSIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJub3RlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMg
YSBub3RlIGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1l
bnRSZWdpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFuIEFS
SUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24gaW4g
YSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0FwcGxpY2F0
aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIiwgIkFuIEFS
SUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXBwbGljYXRpb24uIik7Cisg
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtCYW5uZXIiKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiYmFubmVyIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGFjdHMgYXMgYSBiYW5uZXIuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtD
b21wbGVtZW50YXJ5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbXBsZW1lbnRh
cnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHJlZ2lvbiBv
ZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJ
QUxhbmRtYXJrQ29udGVudEluZm8iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY29u
dGVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBjb250ZW50
LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrTWFpbiIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJtYWluIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGlzIHRoZSBtYWluIHBvcnRpb24gb2YgdGhlIHdlYnNpdGUuIik7CisgICAgaWYgKGFyaWFU
eXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29u
dGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBhIHdlYnNpdGUuIik7CisgICAg
aWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNv
bnRhaW5zIGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOworICAgIGlmIChhcmlhVHlw
ZSA9PSAiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInRvb2x0aXAiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBh
cyBhIHRvb2x0aXAuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOworICAgIGlm
IChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5z
IG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KICNlbmRp
ZgogICAgIAogU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPkFYQnV0dG9uQWN0aW9uVmVyYigpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2Nj
dXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsK
IH0KIAogU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQg
d2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNj
ZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhUZXh0RmllbGRBY3Rpb25WZXJiKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRlIiwgIlZlcmIgc3RhdGluZyB0aGUg
YWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVsZCBpcyBzZWxlY3RlZCwgYXMg
dXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWENoZWNrZWRDaGVja0JveEFj
dGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWENoZWNr
ZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5jaGVj
ayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGNoZWNr
ZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAK
IFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9u
IHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBh
cyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYTGlua0FjdGlvblZlcmIo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWExpbmtBY3Rpb25WZXJi
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRoZSBh
Y3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkg
YWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTWVudUxpc3RQb3B1cEFj
dGlvblZlcmIoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0IjsK
IH0KIAogU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAic2VsZWN0IjsKIH0KIAogU3RyaW5nIG1pc3NpbmdQbHVnaW5U
ZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWlzc2luZ1BsdWdp
blRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWlzc2luZyBQbHVnLWluIiwgIkxh
YmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3NpbmciKTsKIH0KIAogU3Ry
aW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y3Jhc2hlZFBsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGx1
Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCBpZiBwbHVnaW4gaG9zdCBwcm9j
ZXNzIGhhcyBjcmFzaGVkIik7CiB9CiAKIFN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVu
c2lnbmVkIG51bWJlck9mRmlsZXMpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPm11bHRpcGxlRmlsZVVwbG9hZFRleHQobnVtYmVyT2ZGaWxlcyk7CisgICAgcmV0dXJuIGZv
cm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJMYWJlbCB0byBk
ZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1cGxvYWQgY29u
dHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVzKTsKIH0KIAog
U3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT51bmtub3duRmlsZVNpemVUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRl
bSIpOwogfQogCiAjaWYgUExBVEZPUk0oV0lOKQogU3RyaW5nIHVwbG9hZEZpbGVUZXh0KCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dXBsb2FkRmlsZVRleHQoKTsKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAidXBsb2FkIjsKIH0KIAogU3RyaW5nIGFs
bEZpbGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmFsbEZp
bGVzVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJhbGwgZmlsZXMi
OwogfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgYnVpbHRJblBERlBsdWdp
bk5hbWUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5idWlsdEluUERG
UGx1Z2luTmFtZSgpOworICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIldlYktpdCBidWlsdC1pbiBQREYiLCAiUHNldWRvIHBsdWctaW4gbmFtZSwg
dmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7CiB9CiAKIFN0
cmluZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPnBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uKCk7CisgICAgLy8gQWxz
byBleHBvc2VkIHRvIERPTS4KKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUG9ydGFibGUgRG9j
dW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkgdHlwZSBzdXBwb3J0ZWQg
YnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdl
IGluIFNhZmFyaS4iKTsKIH0KIAogU3RyaW5nIGtleWdlbk1lbnVJdGVtNTEyKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0ZW01MTIoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBm
b3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5NZW51SXRlbTEwMjQo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXlnZW5NZW51SXRlbTEw
MjQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAyNCAoTWVkaXVtIEdyYWRlKSIsICJN
ZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwogfQogCiBTdHJpbmcga2V5
Z2VuTWVudUl0ZW0yMDQ4KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
a2V5Z2VuTWVudUl0ZW0yMDQ4KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjIwNDggKEhp
Z2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9
CiAKIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuS2V5Y2hhaW5JdGVtTmFt
ZShob3N0KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRlN0cmluZyhBZG9wdENG
LCBob3N0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJp
bmcoV0VCX1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBrZXljaGFpbiBrZXkgZ2Vu
ZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0cmluZy5nZXQoKSk7CiB9CiAKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1z
KHNpemVfdCBjb3VudCkKK3sKKyAgICBzd2l0Y2ggKGNvdW50KSB7CisgICAgY2FzZSAwOgorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMCBJdGVtcyIsICJQcmVzZW50IHRoZSBlbGVtZW50
IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gbm8gPG9wdGlvbj4gaXRlbXMgYXJlIHNlbGVjdGVkIChp
T1Mgb25seSkiKTsKKyAgICBjYXNlIDE6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCIx
IEl0ZW0iLCAiUHJlc2VudCB0aGUgZWxlbWVudCA8c2VsZWN0IG11bHRpcGxlPiB3aGVuIGEgc2lu
Z2xlIDxvcHRpb24+IGlzIHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiV6dSBJdGVt
cyIsICJQcmVzZW50IHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgPG9wdGlvbj4gaXRlbXMgaW4gYSA8
c2VsZWN0IG11bHRpcGxlPiBlbGVtZW50IChpT1Mgb25seSkiKSwgY291bnQpOworICAgIH0KK30K
KyNlbmRpZgorCiBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25z
dCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5p
bWFnZVRpdGxlKGZpbGVuYW1lLCBzaXplKTsKKyNpZiBVU0UoQ0YpCisjaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZT
dHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgUmV0YWluUHRy
PENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsKKyAg
ICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBDRk51
bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRlckRl
Y2ltYWxTdHlsZSkpOworCisgICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOworICAgIFJl
dGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NG
TnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB3
aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1i
ZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOworCisgICAgaW50IGhlaWdodElu
dCA9IHNpemUuaGVpZ2h0KCk7CisgICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQoQWRv
cHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkpOwor
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVy
Rm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhlaWdo
dC5nZXQoKSkpOworCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGlt
YWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJp
bmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOworI2Vsc2UK
KyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmls
ZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmlu
ZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBz
dGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZp
bGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CisjZW5k
aWYKKyNlbHNlCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5H
KCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxv
bmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53aWR0
aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOworI2Vu
ZGlmCiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4
dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRy
b2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOwogfQogCiBT
dHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRl
eHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEg
Y29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3Qi
KTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3Qg
U3RyaW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50
U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb250cm9sTmFtZSk7
CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRl
c2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAgICBpZiAobmFtZSA9
PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZpZGVvIGVs
ZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZp
ZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNzaWJpbGl0eSByb2xl
IGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11dGVC
dXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIiwgImFjY2Vzc2li
aWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJw
bGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxheSBidXR0b24iKTsK
KyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBwYXVzZSBi
dXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZv
ciB0aW1lbGluZSBzbGlkZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRodW1iIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIiKTsKKyAgICBpZiAo
bmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJh
Y2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNlZWsg
YmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVybiB0byByZWFs
dGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJldHVybiB0byByZWFs
IHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChu
YW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxh
eSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKKyAgICBpZiAobmFtZSA9PSAi
RnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmdWxsc2Ny
ZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50ZXIgZnVsbHNjcmVl
biBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09
ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmYXN0IHJl
dmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0IHJldmVyc2Ug
YnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nl
c3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRv
biIpOworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsK
KworICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIgc2hvdWxkIG5ldmVy
IGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5LgorICAgIGlmIChuYW1l
ID09ICJDb250cm9sc1BhbmVsIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgbG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgY29udHJvbE5h
bWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0
cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bG9jYWxp
emVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnRyb2xOYW1lKTsKKyAgICBpZiAobmFt
ZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImF1ZGlv
IGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vzc2li
aWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIik7Cisg
ICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIs
ICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJv
bGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIGF1ZGlvIHRyYWNrcyIsICJhY2Nlc3Np
YmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAi
UGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiZWdpbiBwbGF5YmFj
ayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxheSBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicGF1
c2UgcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHBhdXNlIGJ1dHRvbiIp
OworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdGlt
ZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiYWNjZXNz
aWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0aHVtYiIpOworICAgIGlmIChu
YW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2Vl
ayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGp1
bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVybiBzdHJl
YW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBy
ZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBidXR0b24iKTsKKyAgICBpZiAobmFt
ZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImN1cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWlu
aW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJudW1iZXIgb2Ygc2Vj
b25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHJl
bWFpbmluZyB0aW1lIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxheSIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50IG1vdmllIHN0YXR1cyIsICJh
Y2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3RhdHVzIGRpc3BsYXkiKTsKKyAgICBp
ZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
Rygic2VlayBxdWlja2x5IGJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGZhc3Qg
cmV3aW5kIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAgIGlmIChu
YW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTaG93Q2xv
c2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RhcnQg
ZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRlQ2xv
c2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RvcCBk
aXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
aGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVE
ZXNjcmlwdGlvbihmbG9hdCB0aW1lKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5sb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsKKyAgICBpZiAoIWlzZmlu
aXRlKHRpbWUpKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5kZWZpbml0ZSB0aW1l
IiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1lZGlhIGNvbnRy
b2xsZXIgdGltZSB2YWx1ZSIpOworCisgICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2FzdDxpbnQ+
KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsK
KyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVzID0g
KHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRheXMp
CisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEk
ZCBkYXlzICUyJGQgaG91cnMgJTMkZCBtaW51dGVzICU0JGQgc2Vjb25kcyIsICJhY2Nlc3NpYmls
aXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDEgZGF5Iiks
IGRheXMsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAoaG91cnMpCisgICAgICAg
IHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBob3VycyAl
MiRkIG1pbnV0ZXMgJTMkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBt
ZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgbWludXRlcyIpLCBob3VycywgbWludXRl
cywgc2Vjb25kcyk7CisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2Nh
bGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBtaW51dGVzICUyJGQgc2Vjb25kcyIsICJh
Y2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49
IDYwIHNlY29uZHMiKSwgbWludXRlcywgc2Vjb25kcyk7CisgICAgcmV0dXJuIGZvcm1hdExvY2Fs
aXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA8IDYwIHNlY29uZHMiKSwg
c2Vjb25kcyk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2Fn
ZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidmFsdWUgbWlz
c2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29udHJvbCBlbGVt
ZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0
dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JGaWxlVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgp
OworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0KIAog
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4dCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9y
UmFkaW9UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRh
dGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1
ZU1pc3NpbmdGb3JTZWxlY3RUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBp
bnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOwogfQog
CiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hU
ZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvck11bHRp
cGxlRW1haWxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNz
YWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFpbmVkIHZhbHVl
IGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0KGludCwgaW50KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT52YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVsZW1l
bnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIik7CiB9
CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJp
bmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5n
ZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xz
IHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKTsKIH0KIAogU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJm
bG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIsICJW
YWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBoaWdo
ZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRj
aFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxp
ZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVz
cGVjdGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKIH0KIAogI2VuZGlmIC8vIFVTRShQTEFURk9S
TV9TVFJBVEVHSUVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
CmluZGV4IGE3M2M5OTFmZWRhOTdlZTk5YjlhZmUyODdjNWM2MGI2MzFhNzM1MmEuLjRlNjhhNjhh
YTZhZDU3N2I1MGUzYmE1MjM4YWU2MzYzNDM0YmNhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE3NCw2ICsxNzQsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYg
aG9zdCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBTdHJpbmcgaHRtbFNlbGVj
dE11bHRpcGxlSXRlbXMoc2l6ZV90IG51bSk7CisjZW5kaWYKKwogICAgIFN0cmluZyBpbWFnZVRp
dGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpOwogCiAgICAg
U3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGRjOWZjMzVhNzBlOTNjZTY0
MzlmN2JhNzMzZjQ0ZDNkMjc2M2M3NGEuLjY0M2YzNzUwNThlY2I4MzBiYjU3ZDUwZTkyY2RkNjU5
MDNiMTYyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcApAQCAtMjksOCArMjksNiBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVz
LmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUGxhdGZvcm1TdHJhdGVnaWVzKiBzX3BsYXRmb3JtU3Ry
YXRlZ2llczsKQEAgLTU5LDExICs1Nyw2IEBAIGJvb2wgaGFzUGxhdGZvcm1TdHJhdGVnaWVzKCkK
ICAgICByZXR1cm4gc19wbGF0Zm9ybVN0cmF0ZWdpZXM7CiB9CiAKLUxvY2FsaXphdGlvblN0cmF0
ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCkKLXsK
LSAgICByZXR1cm4gbmV3IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDc0ODJk
NjAwNWZmMDYzZDY1ZmMwNzdmYmI4YWExZDRkMTVkY2IzN2IuLjE0ZThjNGNmZTYwN2EzNzEyZjM2
MTU3OTIxODE4OTMyYThiNGQ4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU3RyYXRlZ2llcy5oCkBAIC0zMiw3ICszMiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ29va2llc1N0cmF0ZWd5OwogY2xhc3MgUGx1Z2luU3RyYXRlZ3k7Ci1jbGFzcyBMb2Nh
bGl6YXRpb25TdHJhdGVneTsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RyYXRlZ3k7CiAKIGNsYXNzIFBs
YXRmb3JtU3RyYXRlZ2llcyB7CkBAIC01MSwxMyArNTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBtX3BsdWdpblN0cmF0ZWd5OwogICAgIH0KIAotICAgIExvY2FsaXphdGlvblN0cmF0ZWd5
KiBsb2NhbGl6YXRpb25TdHJhdGVneSgpCi0gICAgewotICAgICAgICBpZiAoIW1fbG9jYWxpemF0
aW9uU3RyYXRlZ3kpCi0gICAgICAgICAgICBtX2xvY2FsaXphdGlvblN0cmF0ZWd5ID0gY3JlYXRl
TG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKLSAgICAgICAgcmV0dXJuIG1fbG9jYWxpemF0aW9uU3Ry
YXRlZ3k7Ci0gICAgfQotCiAgICAgVmlzaXRlZExpbmtTdHJhdGVneSogdmlzaXRlZExpbmtTdHJh
dGVneSgpCiAgICAgewogICAgICAgICBpZiAoIW1fdmlzaXRlZExpbmtTdHJhdGVneSkKQEAgLTY5
LDcgKzYxLDYgQEAgcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtU3RyYXRlZ2llcygpCiAgICAgICAg
IDogbV9jb29raWVzU3RyYXRlZ3koMCkKICAgICAgICAgLCBtX3BsdWdpblN0cmF0ZWd5KDApCi0g
ICAgICAgICwgbV9sb2NhbGl6YXRpb25TdHJhdGVneSgwKQogICAgICAgICAsIG1fdmlzaXRlZExp
bmtTdHJhdGVneSgwKQogICAgIHsKICAgICB9CkBAIC04MSwxMiArNzIsMTAgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIENvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0
cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0
cmF0ZWd5KCkgPSAwOwotICAgIHZpcnR1YWwgTG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNyZWF0ZUxv
Y2FsaXphdGlvblN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBWaXNpdGVkTGlua1N0cmF0ZWd5KiBj
cmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkgPSAwOwogCiAgICAgQ29va2llc1N0cmF0ZWd5KiBt
X2Nvb2tpZXNTdHJhdGVneTsKICAgICBQbHVnaW5TdHJhdGVneSogbV9wbHVnaW5TdHJhdGVneTsK
LSAgICBMb2NhbGl6YXRpb25TdHJhdGVneSogbV9sb2NhbGl6YXRpb25TdHJhdGVneTsKICAgICBW
aXNpdGVkTGlua1N0cmF0ZWd5KiBtX3Zpc2l0ZWRMaW5rU3RyYXRlZ3k7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMWZjNTNjMGRjOWVhZDEzNGZjOGJmOGJjOGIxZmVhNTRmNTlmMzYwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNw
cApAQCAtMCwwICsxLDYzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBTdGFpa29zIENv
bXB1dGluZyBTZXJ2aWNlcyBJbmMuIDxpbmZvQHN0YWlrb3MubmV0PgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICog
Q29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9s
b2dpYQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxRQ29y
ZUFwcGxpY2F0aW9uPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBpbnB1dEVsZW1l
bnRBbHRUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSBhbHQgdGV4dCBmb3Ig
PGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Cit9CisKK1N0
cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3Ig
UmVzZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30KKworU3RyaW5nIHNlYXJj
aGFibGVJbmRleEludHJvZHVjdGlvbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVy
IHNlYXJjaCBrZXl3b3JkczogIiwgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBu
ZWFybHktb2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5k
ZXgnIik7Cit9CisKK1N0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJk
ZWZhdWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsK
K30KKworU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlIiwgInRp
dGxlIGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIp
OworfQorCitTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCit7Cisg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hvb3Nl
IEZpbGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNlZCBp
biBIVE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4i
KTsKK30KKworU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlIHNl
bGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9y
bXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uTm9G
aWxlc1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBp
biBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0
ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7
Cit9CisKK1N0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZXRhaWxzIiwgInRleHQg
dG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1tYXJ5PiBjaGls
ZCIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
T3BlbiBpbiBOZXcgV2luZG93IiwgIk9wZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJT
YXZlIExpbmsuLi4iLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkg
TGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEltYWdlIiwgIk9wZW4gSW1h
Z2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBJbWFnZSIsICJEb3dubG9hZCBJ
bWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q29weUltYWdlVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgSW1hZ2UiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0Ns
aXBib2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiQ29weSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJPcGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gQXVkaW8iLCAiT3Bl
biBBdWRpbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8iLCAiQ29weSBWaWRlbyBMaW5rIExv
Y2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9D
bGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkNvcHkgQXVkaW8iLCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29u
dHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29w
IFBsYXliYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXki
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIiwgIlBh
dXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUiLCAi
TXV0ZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5k
b3coKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIk9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IiwgIkNvcHkg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFj
aygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiR28gQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEZvcndhcmQiLCAiRm9yd2FyZCBjb250ZXh0IG1l
bnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RvcCIsICJT
dG9wIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdS
ZWxvYWQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3V0IiwgIkN1dCBjb250ZXh0IG1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhc3RlIiwgIlBhc3RlIGNvbnRl
eHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwo
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlNlbGVjdCBBbGwiLCAiU2VsZWN0IEFsbCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIEd1ZXNzZXMgRm91bmQiLCAi
Tm8gR3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgU3BlbGxpbmcgY29u
dGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3Bl
bGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkFkZCBUbyBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlYXJjaCBU
aGUgV2ViIiwgIlNlYXJjaCBUaGUgV2ViIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJikKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb29r
IFVwIEluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5r
IiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnSWdub3JlR3JhbW1hcigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUo
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlNwZWxsaW5nIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBz
aG93KQoreworICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIp
IDoKKyAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5n
IiwgIkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdo
aWxlIFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVs
bGluZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBz
cGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRm9udE1lbnUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkZvbnRzIiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSXRhbGljIiwg
Ikl0YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVW5kZXJsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPdXRsaW5lIiwgIk91dGxp
bmUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1dy
aXRpbmdEaXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJEaXJlY3Rpb24iLCAiV3JpdGluZyBkaXJlY3Rpb24gY29udGV4
dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGly
ZWN0aW9uTWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiVGV4dCBEaXJlY3Rpb24iLCAiVGV4dCBkaXJlY3Rpb24gY29udGV4dCBzdWIt
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0
aW9uKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMZWZ0IHRv
IFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRv
IExlZnQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0luc3BlY3RFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJJbnNwZWN0IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUg
aXRlbSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBy
ZWNlbnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFy
cyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNo
ZXMgaGF2ZSBiZWVuIHBlcmZvcm1lZCIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNl
YXJjaGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUmVjZW50IHNlYXJjaGVzIiwgImxhYmVsIGZvciBmaXJzdCBpdGVtIGluIHRo
ZSBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1h
Z2UsIHVzZWQgYXMgZW1iZWRkZWQgbWVudSB0aXRsZSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVu
dUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDbGVhciByZWNlbnQgc2VhcmNoZXMiLCAibWVudSBp
dGVtIGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMi
KTsKK30KKworU3RyaW5nIEFYV2ViQXJlYVRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhMaW5rVGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExp
c3RNYXJrZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYSGVhZGluZ1RleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0
aW9uVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlv
blZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94
QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK1N0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWE1l
bnVMaXN0QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFY
TGlua0FjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIs
ICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOworfQor
CitTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1
bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVua25vd24iLCAiVW5rbm93biBmaWxl
c2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOworfQorCitTdHJpbmcgaW1hZ2VUaXRs
ZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxICglMnglMyBw
aXhlbHMpIiwgIlRpdGxlIHN0cmluZyBmb3IgaW1hZ2VzIikuYXJnKGZpbGVuYW1lKS5hcmcoc2l6
ZS53aWR0aCgpKS5hcmcoc2l6ZS5oZWlnaHQoKSk7Cit9CisKK1N0cmluZyBtZWRpYUVsZW1lbnRM
b2FkaW5nU3RhdGVUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1l
c3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOworfQorCitTdHJpbmcgbWVkaWFFbGVt
ZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJv
bGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKK30K
KworI2lmIEVOQUJMRShWSURFTykKKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1l
bnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRpb0Vs
ZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJBdWRpbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAg
IGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSBCdXR0
b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0
ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlVubXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Cisg
ICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IEJ1dHRvbiIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSBCdXR0
b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRl
ciIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlNsaWRlciIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9
PSAiU2xpZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJTbGlkZXIgVGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBCdXR0b24iLCAiTWVk
aWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRp
bWVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJSZXR1cm4gdG8gUmVhbC10aW1lIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRWxhcHNl
ZCBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJU
aW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RhdHVzIERpc3Bs
YXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxz
Y3JlZW5CdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJGdWxsc2NyZWVuIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEZvcndhcmQg
QnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJT
ZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlNlZWsgQmFjayBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7CisKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChu
YW1lID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFu
ZCBzdGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAo
bmFtZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBh
bmQgc3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYg
KG5hbWUgPT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIGF1
ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9
PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkJlZ2luIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIHBsYXliYWNrIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3Zp
ZSB0aW1lIHNjcnViYmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChu
YW1lID09ICJTbGlkZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisg
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJl
d2luZCBtb3ZpZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9
PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVh
bC10aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJD
dXJyZW50VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVt
YWluaW5nIG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYg
KG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHN0YXR1cyIsICJNZWRpYSBj
b250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIp
CisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlBsYXkgbW92aWUgaW4gZnVsbC1zY3JlZW4gbW9kZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkg
YmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vl
a0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUp
Cit7CisgICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZpbml0ZSB0aW1lIiwgIk1lZGlhIHRp
bWUgZGVzY3JpcHRpb24iKTsKKworICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsK
KyAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMg
PSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkg
JSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRheXMpCisgICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGRheXMgJTIgaG91
cnMgJTMgbWludXRlcyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmco
ZGF5cykuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOworCisgICAgaWYgKGhv
dXJzKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICIlMSBob3VycyAlMiBtaW51dGVzICUzIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlw
dGlvbiIpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKKworICAgIGlmICht
aW51dGVzKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICIlMSBtaW51dGVzICUyIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIp
LmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7CisKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3Jp
cHRpb24iKS5hcmcoc2Vjb25kcyk7Cit9CisKKyNlbHNlIC8vIEVOQUJMRShWSURFTykKKy8vIEZJ
WE1FOiAjaWYgRU5BQkxFKFZJREVPKSBzaG91bGQgYmUgaW4gdGhlIGJhc2UgY2xhc3MKKworU3Ry
aW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1l
KQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQg
dGltZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklE
RU8pCisKKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQ
YXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRj
aFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRm
b3JtU3RyYXRlZ2llc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxh
dGZvcm1TdHJhdGVnaWVzUXQuY3BwCmluZGV4IDY0ZDQyNGQ5NTZlM2MwOGY1NGZlYWI3YmIxNjU4
OTE0MmYyMmVhMmUuLmZiOTI4ZmExZjIzNTk2MTMxNzFkYWNhOWM4M2RlZjNiZTRhNTg0NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVn
aWVzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1T
dHJhdGVnaWVzUXQuY3BwCkBAIC0xNDUsNjA4ICsxNDUsNiBAQCB2b2lkIFBsYXRmb3JtU3RyYXRl
Z2llc1F0OjpnZXRQbHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2UqIHBhZ2UsIFZlY3RvcjxX
ZWJDbwogCiB9CiAKLQotLy8gTG9jYWxpemF0aW9uU3RyYXRlZ3kKLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0OjppbnB1dEVsZW1lbnRBbHRUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdWJtaXQiLCAiU3VibWl0IChpbnB1
dCBlbGVtZW50KSBhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0
bGUsIG9yIHZhbHVlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6cmVzZXRC
dXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRv
bnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUaGlzIGlzIGEgc2VhcmNoYWJsZSBp
bmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiLCAidGV4dCB0aGF0IGFwcGVhcnMgYXQgdGhl
IHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0gb2YgYSAnc2Vh
cmNoYWJsZSBpbmRleCciKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzdWJt
aXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJkZWZhdWx0IGxhYmVsIGZvciBTdWJtaXQg
YnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0OjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaG9vc2UgRmlsZSIsICJ0aXRs
ZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uQ2hvb3NlTXVsdGlw
bGVGaWxlc0xhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJDaG9vc2UgRmlsZXMiLCAidGl0bGUgZm9yIGEgbXVsdGlwbGUgZmlsZSBj
aG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMuIFRoaXMgdGl0bGUgc2hvdWxkIGJlIGFz
IHNob3J0IGFzIHBvc3NpYmxlLiIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlIHNlbGVjdGVkIiwgInRleHQg
dG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxl
IGlzIHNlbGVjdGVkIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZmlsZUJ1
dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRp
c3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJl
IHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxl
Y3RlZCIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmRlZmF1bHREZXRhaWxz
U3VtbWFyeVRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkRldGFpbHMiLCAidGV4dCB0byBkaXNwbGF5IGluIDxkZXRhaWxzPiB0YWcg
d2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxkIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBp
biBOZXcgV2luZG93IiwgIk9wZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlzaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBMaW5rLi4uIiwgIkRvd25sb2FkIExpbmtlZCBGaWxlIGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4
dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBMaW5rIiwgIkNvcHkgTGluayBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEltYWdlIiwgIk9wZW4g
SW1hZ2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2so
KQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlNhdmUgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VU
b0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiQ29weSBJbWFnZSIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5
SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRk
cmVzcyBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBWaWRlbyIsICJPcGVuIFZp
ZGVvIGluIE5ldyBXaW5kb3ciKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBBdWRpbyIsICJPcGVu
IEF1ZGlvIGluIE5ldyBXaW5kb3ciKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8i
LCAiQ29weSBWaWRlbyBMaW5rIExvY2F0aW9uIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5
IEF1ZGlvIiwgIkNvcHkgQXVkaW8gTGluayBMb2NhdGlvbiIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRv
Z2dsZSBDb250cm9scyIsICJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRv
Z2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3Jl
ZW4oKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBs
YXkoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlBsYXkiLCAiUGxheSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIiwgIlBhdXNlIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRl
IiwgIk11dGUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBGcmFtZSIsICJPcGVuIEZyYW1lIGlu
IE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IiwgIkNvcHkgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkdvIEJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2Fy
ZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiR28gRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RvcCIsICJT
dG9wIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWxvYWQiLCAiUmVsb2FkIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJ
dGVtVGFnQ3V0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhc3RlIiwgIlBh
c3RlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWxlY3QgQWxsIiwgIlNlbGVjdCBBbGwg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBH
dWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJ
Z25vcmUgU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBZGQgVG8gRGlj
dGlvbmFyeSIsICJMZWFybiBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2Vh
cmNoIFRoZSBXZWIiLCAiU2VhcmNoIFRoZSBXZWIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRp
Y3Rpb25hcnkoY29uc3QgU3RyaW5nJikKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb29rIFVwIEluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBp
biBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gTGluayIsICJPcGVu
IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJZ25vcmUiLCAiSWdub3JlIEdy
YW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNwZWxsaW5nIiwgIlNwZWxsaW5n
IGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wg
c2hvdykKLXsKLSAgICByZXR1cm4gc2hvdyA/IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiU2hvdyBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUi
KSA6Ci0gICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiQ2hlY2sgU3BlbGxpbmciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyIs
ICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1t
YXJXaXRoU3BlbGxpbmcoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIsICJDaGVjayBncmFt
bWFyIHdpdGggc3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRm9udHMiLCAiRm9u
dCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdJdGFsaWMoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVu
ZGVybGluZSIsICJVbmRlcmxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPdXRsaW5lIiwg
Ik91dGxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRGlyZWN0aW9u
IiwgIldyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25N
ZW51KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJUZXh0IERpcmVjdGlvbiIsICJUZXh0IGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdEZWZhdWx0RGlyZWN0aW9uKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24g
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGVmdCB0byBSaWdodCIsICJMZWZ0IHRvIFJp
Z2h0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQg
dG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJbnNwZWN0IiwgIkluc3Bl
Y3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gcmVjZW50IHNlYXJj
aGVzIiwgIkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlj
a2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3aGVuIG5vIHNlYXJjaGVzIGhhdmUgYmVl
biBwZXJmb3JtZWQiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hN
ZW51UmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWNlbnQgc2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0
IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJj
aCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJDbGVhciByZWNlbnQgc2VhcmNoZXMiLCAibWVudSBpdGVtIGluIFJlY2VudCBTZWFyY2hlcyBt
ZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0OjpBWFdlYkFyZWFUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpB
WExpbmtUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmco
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWExpc3RNYXJrZXJUZXh0KCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWEltYWdlTWFwVGV4dCgpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6QVhIZWFkaW5nVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhE
ZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWERlZmlu
aXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYQnV0
dG9uQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3Ry
aW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhSYWRpb0J1dHRvbkFj
dGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYVGV4dEZpZWxkQWN0aW9uVmVy
YigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJi
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
YigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhNZW51TGlzdEFjdGlvblZlcmIoKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OkFYTGlua0FjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6Om1pc3NpbmdQbHVnaW5UZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNaXNzaW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0
byBiZSB1c2VkIHdoZW4gYSBwbHVnLWluIGlzIG1pc3NpbmciKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpjcmFzaGVkUGx1Z2luVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCkKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojp1bmtub3duRmlsZVNpemVUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbmtub3duIiwgIlVua25vd24gZmlsZXNpemUg
RlRQIGRpcmVjdG9yeSBsaXN0aW5nIGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0OjppbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUm
IHNpemUpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiJTEgKCUyeCUzIHBpeGVscykiLCAiVGl0bGUgc3RyaW5nIGZvciBpbWFnZXMiKS5hcmco
ZmlsZW5hbWUpLmFyZyhzaXplLndpZHRoKCkpLmFyZyhzaXplLmhlaWdodCgpKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJM
b2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVk
aWEgaXMgbG9hZGluZyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6Om1lZGlh
RWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxpdmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNv
bnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7
Ci19Ci0KLSNpZiBFTkFCTEUoVklERU8pCi0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCi17
Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkF1ZGlvIEVsZW1lbnQiLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCi0g
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlZp
ZGVvIEVsZW1lbnQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJNdXRlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKLSAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIEJ1dHRvbiIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0g
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBs
YXkgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09
ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlBhdXNlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2xpZGVyIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCi0gICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNsaWRlciBUaHVtYiIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiUmV3aW5kIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBp
ZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiB0byBSZWFsLXRpbWUg
QnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJD
dXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJFbGFwc2VkIFRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWluaW5n
IFRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlN0
YXR1c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTdGF0dXMgRGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKLSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkZ1bGxzY3JlZW4gQnV0dG9u
IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTZWVrRm9y
d2FyZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlNlZWsgRm9yd2FyZCBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBCYWNrIEJ1dHRv
biIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLQotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xF
bGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09ICJB
dWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJBdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMg
ZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAi
VmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVz
IGRpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0g
Ik11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIGF1ZGlvIHRyYWNr
cyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1
dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkJlZ2luIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAg
IGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQotICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3ZpZSB0aW1lIHNj
cnViYmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJT
bGlkZXJUaHVtYiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBtb3Zp
ZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbC10aW1lIiwg
Ik1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJDdXJyZW50VGlt
ZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWluaW5nIG1v
dmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0g
IlN0YXR1c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHN0YXR1cyIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkgbW92
aWUgaW4gZnVsbC1zY3JlZW4gbW9kZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAg
ICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgYmFjayIsICJN
ZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0
b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
LQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlv
bihmbG9hdCB0aW1lKQotewotICAgIGlmICghaXNmaW5pdGUodGltZSkpCi0gICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkluZGVmaW5pdGUgdGlt
ZSIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIik7Ci0KLSAgICBpbnQgc2Vjb25kcyA9IChpbnQp
ZmFic2YodGltZSk7Ci0gICAgaW50IGRheXMgPSBzZWNvbmRzIC8gKDYwICogNjAgKiAyNCk7Ci0g
ICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKLSAgICBpbnQgbWludXRlcyA9IChz
ZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAlPSA2MDsKLQotICAgIGlmIChkYXlzKQot
ICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIl
MSBkYXlzICUyIGhvdXJzICUzIG1pbnV0ZXMgJTQgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2Ny
aXB0aW9uIikuYXJnKGRheXMpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsK
LQotICAgIGlmIChob3VycykKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiJTEgaG91cnMgJTIgbWludXRlcyAlMyBzZWNvbmRzIiwgIk1lZGlh
IHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoaG91cnMpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7
Ci0KLSAgICBpZiAobWludXRlcykKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgbWludXRlcyAlMiBzZWNvbmRzIiwgIk1lZGlhIHRpbWUg
ZGVzY3JpcHRpb24iKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOwotCi0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgc2Vjb25kcyIsICJNZWRp
YSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKHNlY29uZHMpOwotfQotCi0jZWxzZSAvLyBFTkFCTEUo
VklERU8pCi0vLyBGSVhNRTogI2lmIEVOQUJMRShWSURFTykgc2hvdWxkIGJlIGluIHRoZSBiYXNl
IGNsYXNzCi0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgcmV0dXJuIFN0cmlu
ZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgcmV0dXJuIFN0
cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlh
VGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCi17Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFZJREVPKQotCi0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQo
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxv
d1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1p
c21hdGNoVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5n
KCk7Ci19Ci0KLQogLy8gVmlzaXRlZExpbmtTdHJhdGVneQogCiBib29sIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojppc0xpbmtWaXNpdGVkKFBhZ2UqIHBhZ2UsIExpbmtIYXNoIGhhc2gsIGNvbnN0IEtV
UkwmIGJhc2VVUkwsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlVVJMKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5o
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5o
CmluZGV4IDUwNDkxOWUzODNmYzk0NzkyMmM4NGIyNzVmYTRlZDEwZjI4YTFmZjYuLjYwMWM1MTZm
MmMxYjE2NDA1MDFmMjM5YzUwYTc4ZWUyNjM3NjhjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSU5kVCAtIEluc3RpdHV0byBOb2tp
YSBkZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgpAQCAtMjksNyArMjksNiBAQAogI2RlZmlu
ZSBQbGF0Zm9ybVN0cmF0ZWdpZXNRdF9oCiAKICNpbmNsdWRlIDxDb29raWVzU3RyYXRlZ3kuaD4K
LSNpbmNsdWRlIDxMb2NhbGl6YXRpb25TdHJhdGVneS5oPgogI2luY2x1ZGUgPFBsYXRmb3JtU3Ry
YXRlZ2llcy5oPgogI2luY2x1ZGUgPFBsdWdpblN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8VmlzaXRl
ZExpbmtTdHJhdGVneS5oPgpAQCAtMzgsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBQYWdlOwogfQogCi1jbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdCA6IHB1YmxpYyBXZWJD
b3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5
LCBwcml2YXRlIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OkxvY2Fs
aXphdGlvblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kgewor
Y2xhc3MgUGxhdGZvcm1TdHJhdGVnaWVzUXQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJh
dGVnaWVzLCBwcml2YXRlIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3Jl
OjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CiAKQEAgLTQ4LDcgKzQ3LDYg
QEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCk7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3ko
KTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvY2FsaXphdGlvblN0cmF0ZWd5KiBjcmVhdGVMb2Nh
bGl6YXRpb25TdHJhdGVneSgpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJh
dGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpOwogICAgIAogICAgIC8vIFdlYkNvcmU6
OkNvb2tpZXNTdHJhdGVneQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCmluZGV4IDkyZDM3ZGM2NTM2
MmE5NTVlNjFjMDlhNWZiMzYxZWNlYjVmY2UzYTAuLjQ3YjBlMzQyNWM3YzRiNjZjYTc4NDdmODJl
NzU4YjZjMWUyMzMyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKQEAgLTI2LDcgKzI2LDYg
QEAKICNkZWZpbmUgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0VfaAogCiAjaW5jbHVkZSAiQ29va2ll
c1N0cmF0ZWd5LmgiCi0jaW5jbHVkZSAiTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQbHVnaW5TdHJhdGVneS5oIgogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rU3RyYXRlZ3kuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126610</attachid>
            <date>2012-02-10 17:57:28 -0800</date>
            <delta_ts>2012-02-11 14:33:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120210175727.patch</filename>
            <type>text/plain</type>
            <size>125537</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTMzOWNhYjg3NmZiYjlh
OWQ1OTAzYTk2NDRkMDU0NzA4MGEyMGVkMy4uYTNiNDJhMjkzNTBjMzFhZGQwZjBmZjA5YjUzNjcz
Mjk4MDJmY2Y1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MyBAQAorMjAxMi0wMi0xMCAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3Jk
ZXI6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0xv
Y2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmZv
cm1hdExvY2FsaXplZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjp0cnVuY2F0ZWRTdHJpbmdG
b3JMb29rdXBNZW51SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjppbnB1dEVsZW1lbnRBbHRUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRv
bkNob29zZUZpbGVMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uQ2hvb3NlTXVs
dGlwbGVGaWxlc0xhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25Ob0ZpbGVTZWxl
Y3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRM
YWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2spOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHkpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29CYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdTdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1JlbG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDdXQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0lnbm9yZVNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0xlYXJuU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2Vh
cmNoSW5TcG90bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2Vh
cmNoV2ViKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGlj
dGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluayk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnSXRhbGljKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Vu
ZGVybGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0eWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdTdG9wU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVGV4dERpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnRGVmYXVsdERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdMZWZ0VG9SaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdS
aWdodFRvTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0
U3BlbGxpbmdBdXRvbWF0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1N1YnN0aXR1dGlvbnNNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1Nob3dTdWJzdGl0dXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0Q29weVBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z1NtYXJ0UXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0
RGFzaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3Mp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVu
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFy
Y2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVu
dVJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51Q2xlYXJS
ZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhXZWJBcmVhVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWExpbmtUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlzdE1h
cmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZU1hcFRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6QVhIZWFkaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25M
aXN0VGVybVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRp
b25UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
UmFkaW9CdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dEZpZWxkQWN0
aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIp
OgorICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhMaW5rQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWE1l
bnVMaXN0UG9wdXBBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYTWVudUxpc3RBY3Rp
b25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6Om1pc3NpbmdQbHVnaW5UZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om11bHRpcGxl
RmlsZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93bkZpbGVTaXplVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp1cGxvYWRGaWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjph
bGxGaWxlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRJblBERlBsdWdpbk5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6cGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW01MTIpOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVu
dUl0ZW0xMDI0KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbk1lbnVJdGVtMjA0OCk6CisgICAg
ICAgIChXZWJDb3JlOjprZXlnZW5LZXljaGFpbkl0ZW1OYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
Omh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVGl0bGUp
OgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckZpbGVUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlw
bGVGaWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ0ZvclJhZGlvVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZh
bHVlTWlzc2luZ0ZvclNlbGVjdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3Jt
U3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVN0cmF0ZWdpZXM6OlBsYXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgIChQbGF0Zm9ybVN0
cmF0ZWdpZXMpOgorCiAyMDEyLTAyLTA5ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
MTQ4YTI3MzY5ODBlMmIyODllZjViMGEyODQ1N2UwZjllY2ZhOGYxZS4uYTgwNmE3ZDViZmQ3OWZm
ZWIxMGUzMDAzM2EyNzY0ZjcyYTEzYWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wMi0xMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgR2V0IHJpZCBvZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0
Zm9ybVN0cmF0ZWdpZXNRdC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1T
dHJhdGVnaWVzUXQuaDoKKyAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc1F0KToKKwogMjAxMi0w
Mi0wOSAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBGaXggY29tcGlsYXRpb24gd2l0aCBuZXdlciBRdDUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cK
aW5kZXggNmQyYTdlNjQ3YjJlMGFlMDliN2Y3NmNjMDY3MjY3ODU5M2Y5MjEzMS4uNDY0NmY1NTIw
YTg3Y2ZlYmU2ODU2OWRiM2ZmYmIzY2ViNzc0YTIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMi0wMi0xMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBvZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oOgorCiAyMDExLTEyLTE5ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSBQbGF0Zm9ybUV2ZW50IGNsZWFu
dXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDg0NDhiM2FjOTY2ODJhZTVjZGNi
YWJjMzA1MzQ0M2ZkNjcwZGFlYjAuLjAzNzc3ZjJlNjAzYzg1OGFkMDYzYTQ0ZTJlYjM3NTUxZTQ4
ZGZjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjgxOSw4ICsyODE5LDYg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3Iu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oIFwKLQlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwIFwKLQlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFn
RGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCmluZGV4IDE0M2Y3OGNlZDcwY2FmOWU1NWFmMjFiMGZjMjUyNzczNTE3NTA5MjQuLjE1NTli
OTA5NWU4YTAyMDkyYzNkMGY0M2U0ZDQ5YmY3ZDU0ZjM4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTAz
NSw3ICsxMDM1LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3Bw
IFwKICAgICBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgXAogICAgIHBsYXRmb3JtL0Rh
dGVDb21wb25lbnRzLmNwcCBcCi0gICAgcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5LmNwcCBcCiAgICAgcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIFwKICAgICBwbGF0Zm9ybS9EcmFn
SW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAgXApAQCAtMjA5MCw3ICsy
MDg5LDYgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vQ29udGV4dE1lbnUuaCBcCiAgICAg
cGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaCBcCiAgICAgcGxhdGZvcm0vRGF0ZUNvbXBvbmVu
dHMuaCBcCi0gICAgcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggXAogICAg
IHBsYXRmb3JtL0RyYWdEYXRhLmggXAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5oIFwKICAgICBw
bGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIFwKQEAgLTI4MzUsNiArMjgzMyw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIHBsYXRmb3JtL3F0L1NvdW5kUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9Mb2dnaW5n
UXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9MYW5ndWFnZVF0LmNwcCBcCisgICAgcGxhdGZvcm0v
cXQvTG9jYWxpemVkU3RyaW5nc1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvVGVtcG9yYXJ5TGlu
a1N0dWJzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0L1RleHRCb3VuZGFyaWVzUXQuY3Bw
IFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA0YzMxOTNhZTM1OGVmY2JiZGIzNjhhNTkzZWVk
YTdlZThhOGRkOGM3Li5mY2E5NDE3MWUyNTQ1MjcyNWM0ODZlNDlhNjg0MTllMmZjNDFhYjZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTQ4LDcgKzU0OCw2IEBAIF9fWk43V2ViQ29yZTE3UmVn
dWxhckV4cHJlc3Npb25EMUV2CiBfX1pON1dlYkNvcmUxN2NhY2hlRE9NU3RydWN0dXJlRVBOU18x
N0pTRE9NR2xvYmFsT2JqZWN0RVBOM0pTQzlTdHJ1Y3R1cmVFUEtOUzJfOUNsYXNzSW5mb0UKIF9f
Wk43V2ViQ29yZTE3b3BlblRlbXBvcmFyeUZpbGVFUktOM1dURjZTdHJpbmdFUmkKIF9fWk43V2Vi
Q29yZTE4SFRNTENvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RQotX19aTjdXZWJD
b3JlMThQbGF0Zm9ybVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKIF9f
Wk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkMTNidWZmZXJGb3JUeXBlRVJLTjNXVEY2U3Ry
aW5nRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQxM3N0cmluZ0ZvclR5cGVFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtUGFzdGVib2FyZDE5c2V0UGF0aG5h
bWVzRm9yVHlwZUVSS04zV1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBFRUVSS1MzXwpAQCAtMTQ4
Nyw3ICsxNDg2LDYgQEAgX19aTks3V2ViQ29yZTlUcmVlU2NvcGUxNGdldEVsZW1lbnRCeUlkRVJL
TjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWlRWTjdXZWJDb3JlMTJDaHJvbWVDbGllbnRFCiBfX1pU
Vk43V2ViQ29yZTE2SWNvbkRhdGFiYXNlQmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRl
ckNsaWVudEUKLV9fWlRWTjdXZWJDb3JlMThQbGF0Zm9ybVN0cmF0ZWdpZXNFCiBfX1pUVk43V2Vi
Q29yZTI1SGlzdG9yeVByb3BlcnR5TGlzdFdyaXRlckUKIF9fWlRWTjdXZWJDb3JlMjhJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOFNldHRpbmdzRQogX2ZpbGVuYW1lQnlGaXhpbmdJbGxlZ2Fs
Q2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc4YTg1YzBkMzFlMDkxZDg5ZmJjODBiMTI5
NjIzNzVlNTVhYzNlNzkuLmE0YTFmZTkxZjU0ZDI3MDRjMWVlYjkxMmQ1YjMxOTFhOTRiODg1Mzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTI1MSw3ICsyNTEsNiBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0Nvb2tpZXNTdHJhdGVneS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9DdXJzb3IuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaCcsCi0gICAgICAgICAgICAn
cGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL0RyYWdEYXRhLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdJbWFnZS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oJywKQEAgLTI2Nyw3ICsyNjYsNiBA
QAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xlbmd0aEJveC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9MZW5ndGhTaXplLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xpbmtIYXNoLmgnLAot
ICAgICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
TG9nZ2luZy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCcsCkBAIC0yNzMyLDcgKzI3MzAsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Nyb3NzVGhy
ZWFkQ29waWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0N1cnNvci5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZv
cm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vRHJhZ0RhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9FdmVudExvb3AuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRl
eCA5OWFjNGQyZDljYzY3YTViYWE4ZDMyMzRkOThlOTZjNGMzNGQ3YzQ3Li5kNWJlMzlmNDU4N2Y1
ZmRjZmU0NWUzZmY4MWVjYTRmZjhhY2I2MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTUzMjks
OSArNTMyOSw2IEBAIF9fWk5LN1dlYkNvcmUxOUFjY2Vzc2liaWxpdHlPYmplY3QxNWlzTWVkaWFU
aW1lbGluZUV2CiAtW0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVEZXNjcmlwdGlvbl0K
IF9fWk43V2ViQ29yZTEzQVhIZWFkaW5nVGV4dEV2CiBfX1pON1dlYkNvcmUyMWhhc1BsYXRmb3Jt
U3RyYXRlZ2llc0V2Ci1fX1pON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llczI2Y3JlYXRlTG9j
YWxpemF0aW9uU3RyYXRlZ3lFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3lDMUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEzQVhI
ZWFkaW5nVGV4dEV2CiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0NHNp
emVFdgogX19aTks3V2ViQ29yZTI1QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDExZWxlbWVudFJl
Y3RFdgogX19aTks3V2ViQ29yZTE5QWNjZXNzaWJpbGl0eU9iamVjdDEzaXNSYWRpb0J1dHRvbkV2
CkBAIC02NjgwLDcgKzY2NzcsNiBAQCBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRlcjI1aXNM
b2FkaW5nTXVsdGlwYXJ0Q29udGVudEV2CiBfX1pOSzdXZWJDb3JlNEtVUkwxN2xhc3RQYXRoQ29t
cG9uZW50RXYKIF9fWk43V2ViQ29yZTI0ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlMTBpbWFnZVRpdGxlRVJLTjNXVEY2U3RyaW5nRVJLTlNfN0lu
dFNpemVFCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEwaW1hZ2VU
aXRsZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQogX19aTjdXZWJDb3JlTDIxZm9ybWF0
TG9jYWxpemVkU3RyaW5nRU4zV1RGNlN0cmluZ0V6CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ4c2V0
VGl0bGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ0aGVhZEV2CkBAIC02
NzMwLDcgKzY3MjYsNiBAQCBfX1pON1dlYkNvcmUxNkpTSFRNTFByZUVsZW1lbnQxNWNyZWF0ZVBy
b3RvdHlwZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbAogX19aTjdXZWJDb3JlMTZK
U0hUTUxQcmVFbGVtZW50QzFFUE4zSlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVj
dEVOM1dURjEwUGFzc1JlZlB0cklOU18xNEhUTUxQcmVFbGVtZW50RUVFCiBfX1pON1dlYkNvcmUx
MmNhY2hlV3JhcHBlcklOU18xNEhUTUxQcmVFbGVtZW50RUVFdlBOU18xNURPTVdyYXBwZXJXb3Js
ZEVQVF9QTlNfMTJKU0RPTVdyYXBwZXJFCiBfX1pON1dlYkNvcmUxM0FYV2ViQXJlYVRleHRFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYV2ViQXJlYVRleHRF
dgogX19aTjdXZWJDb3JlMTBSZW5kZXJWaWV3MTNhYnNvbHV0ZVF1YWRzRVJOM1dURjZWZWN0b3JJ
TlNfOUZsb2F0UXVhZEVMbTBFRUUKIF9fWk43V2ViQ29yZTI1QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDE2Z2V0RG9jdW1lbnRMaW5rc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzE5QWNj
ZXNzaWJpbGl0eU9iamVjdEVFRUxtMEVFRQogX19aTjdXZWJDb3JlOERvY3VtZW50NWxpbmtzRXYK
QEAgLTY3NDAsNyArNjczNSw2IEBAIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QxMWxheW91dENvdW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QyNGVzdGltYXRlZExvYWRpbmdQcm9ncmVzc0V2CiBfX1pOSzdXZWJDb3JlMTVQcm9ncmVz
c1RyYWNrZXIxN2VzdGltYXRlZFByb2dyZXNzRXYKIF9fWk43V2ViQ29yZTEwQVhMaW5rVGV4dEV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEwQVhMaW5rVGV4dEV2
CiBfX1pON1dlYkNvcmUxMlJlbmRlcklubGluZTI1Y3VsbGVkSW5saW5lQWJzb2x1dGVSZWN0c0VQ
S1MwX1JOM1dURjZWZWN0b3JJTlNfN0ludFJlY3RFTG0wRUVFUktOU183SW50U2l6ZUUKIF9fWk5L
N1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxOWludGVybmFsTGlua0VsZW1lbnRF
dgogX19aTks3V2ViQ29yZTE3SFRNTEFuY2hvckVsZW1lbnQ0aHJlZkV2CkBAIC02ODkxLDkgKzY4
ODUsNyBAQCBfX1pOSzdXZWJDb3JlMTNIVE1MSFJFbGVtZW50MjNjYW5Db250YWluUmFuZ2VFbmRQ
b2ludEV2CiBfX1pOSzdXZWJDb3JlMTdBY2Nlc3NpYmlsaXR5TGlzdDEzaXNPcmRlcmVkTGlzdEV2
CiBfX1pOSzdXZWJDb3JlMTdBY2Nlc3NpYmlsaXR5TGlzdDE2aXNEZWZpbml0aW9uTGlzdEV2CiBf
X1pON1dlYkNvcmUyNEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0RXYKIF9f
Wk43V2ViQ29yZTMwQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlv
blRleHRFdgogX19aTjdXZWJDb3JlMTlIVE1MRmllbGRTZXRFbGVtZW50RDBFdgogX19aTjdXZWJD
b3JlMTdIVE1MTGVnZW5kRWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZUwxNnZpZGVvQ29uc3RydWN0
b3JFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1l
bnRFYgpAQCAtNzE4Miw3ICs3MTc0LDYgQEAgX19aVGhuMTIwX043V2ViQ29yZTE2SFRNTE1lZGlh
RWxlbWVudDMwbWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkRVBOU18xMU1lZGkKIF9fWk43
V2ViQ29yZTExTWVkaWFQbGF5ZXIxMm5ldHdvcmtTdGF0ZUV2CiBfX1pON1dlYkNvcmUxNkhUTUxN
ZWRpYUVsZW1lbnQxNXNldE5ldHdvcmtTdGF0ZUVOU18xMU1lZGlhUGxheWVyMTJOZXR3b3JrU3Rh
dGVFCiBfX1pON1dlYkNvcmUyOG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHRFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOG1lZGlhRWxlbWVudExvYWRpbmdT
dGF0ZVRleHRFdgogX19aTjdXZWJDb3JlMzRNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDMTljcmVhdGVBVkFzc2V0Rm9yVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMzBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24xN3NldERlbGF5Q2FsbGJhY2tzRWIKIF9fWkwz
OGluaXRBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25zS2V5dgpAQCAtNzQxNyw3ICs3NDA4
LDYgQEAgX19aTks3V2ViQ29yZTM1QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI5
cm9sZVZhbHVlRXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29u
dGFpbmVyMjRhY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25FdgogX19aTks3V2ViQ29yZTM1QWNjZXNz
aWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIxNWVsZW1lbnRUeXBlTmFtZUV2CiBfX1pON1dl
YkNvcmUzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmdFUktOM1dURjZTdHJpbmdF
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM0bG9jYWxpemVkTWVk
aWFDb250cm9sRWxlbWVudFN0cmluZ0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1RHlu
YW1pY05vZGVMaXN0MTVpbnZhbGlkYXRlQ2FjaGVFdgogX19aTks3V2ViQ29yZTI0TWVkaWFDb250
cm9sSW5wdXRFbGVtZW50MjFpc01lZGlhQ29udHJvbEVsZW1lbnRFdgogX19aTks3V2ViQ29yZTI1
QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDIyYWNjZXNzaWJpbGl0eUlzSWdub3JlZEV2CkBAIC03
NTU0LDE0ICs3NTQ0LDEyIEBAIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wx
NHN0eWxlRGlkQ2hhbmdlRU5TXzE1U3R5bGVEaWZmZXJlbmNlRVBLTlNfCiBfX1pON1dlYkNvcmUy
M1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTd1cGRhdGVGcm9tRWxlbWVudEV2CiBfX1pON1dlYkNv
cmUxOFNoYWRvd0lucHV0RWxlbWVudDZjcmVhdGVFUE5TXzExSFRNTEVsZW1lbnRFCiBfX1pON1dl
YkNvcmUyNWZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWxFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kyNWZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWxFdgogX19aTjdX
ZWJDb3JlOUlucHV0VHlwZTEydmFsdWVDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTIySFRNTEZvcm1D
b250cm9sRWxlbWVudDExc2V0RGlzYWJsZWRFYgogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDI5Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHNFdgogX19aTks3V2ViQ29y
ZTEzRmlsZUlucHV0VHlwZTEyaXNGaWxlVXBsb2FkRXYKIF9fWk43V2ViQ29yZTIzUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2wxMXBhaW50T2JqZWN0RVJOU185UGFpbnRJbmZvRWlpCiBfX1pON1dlYkNv
cmUyOWZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MjlmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbEV2CiBf
X1pON1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RFYgogX19a
TjdXZWJDb3JlMTFSZW5kZXJCbG9jazEzYWJzb2x1dGVSZWN0c0VSTjNXVEY2VmVjdG9ySU5TXzdJ
bnRSZWN0RUxtMEVFRWlpCiBfX1pUaG44X043V2ViQ29yZTE5SFRNTFRleHRBcmVhRWxlbWVudEQw
RXYKQEAgLTc4MTcsMTAgKzc4MDUsNyBAQCBfX1pOM1dURjlIYXNoVGFibGVJTlNfNlN0cmluZ0VT
dDRwYWlySVMxX1BLTjdXZWJDb3JlMjFFZGl0b3JJbnRlcm5hbENvbW1hbmRFRU5TXwogX19aTjNX
VEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIxRWRpdG9ySW50
ZXJuYWxDb21tYW5kRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTN19FRU5TXzE1Q2FzZUZvbGRp
bmdIYXNoRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSVMxX0VFTlNDX0lTNl9F
RUVFU0RfRTZsb29rdXBJUzFfTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySVMxX1M3X1NBX0VF
RUVQUzdfUktUXwogX19aTjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043
V2ViQ29yZTIxRWRpdG9ySW50ZXJuYWxDb21tYW5kRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklT
N19FRU5TXzE1Q2FzZUZvbGRpbmdIYXNoRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJh
aXRzSVMxX0VFTlNDX0lTNl9FRUVFU0RfRTZyZWhhc2hFaQogX19aTjdXZWJDb3JlMzVjb250ZXh0
TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uc0ViCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTZzaGFyZWRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zRWIKIF9fWk43
V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWxFYgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsRWIKIF9fWk43V2ViQ29yZUwyMmNlbnRlclRydW5jYXRlVG9CdWZmZXJFUktO
M1dURjZTdHJpbmdFampQdAogX19aTjdXZWJDb3JlMTFpc1RleHRCcmVha0VQTlNfMTdUZXh0QnJl
YWtJdGVyYXRvckVpCiBfX1pON1dlYkNvcmUxNVNRTGl0ZVN0YXRlbWVudDhiaW5kTnVsbEVpCkBA
IC0xMTk1MCw3ICsxMTkzNSw2IEBAIF9fWk43V2ViQ29yZTIyanNIVE1MQ29sbGVjdGlvbkxlbmd0
aEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8xMElkZW50CiBfX1pOSzdXZWJD
b3JlMTdIVE1MT2JqZWN0RWxlbWVudDE4Y29udGFpbnNKYXZhQXBwbGV0RXYKIF9fWk43V2ViQ29y
ZTIwUmVuZGVyRW1iZWRkZWRPYmplY3QzMHNldFNob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvckV2
CiBfX1pON1dlYkNvcmUxN21pc3NpbmdQbHVnaW5UZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MTdtaXNzaW5nUGx1Z2luVGV4dEV2CiBfX1pON1dlYkNvcmUy
MFJlbmRlckVtYmVkZGVkT2JqZWN0MTNwYWludFJlcGxhY2VkRVJOU185UGFpbnRJbmZvRWlpCiBf
X1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MjZnZXRSZXBsYWNlbWVudFRleHRHZW9t
ZXRyeUVpaVJOU185RmxvYXRSZWN0RVJOU180UGF0aEVTMl9STlNfNEZvbnRFUk5TXzdUZXh0UnVu
RVJmCiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU185RmxvYXRSZWN0RVJL
TlNfOUZsb2F0U2l6ZUUKQEAgLTEyMzcwLDcgKzEyMzU0LDYgQEAgX19aTjdXZWJDb3JlOUlucHV0
VHlwZTE5YWx0QXR0cmlidXRlQ2hhbmdlZEV2CiBfX1pOM1dURjZTdHJpbmcxMG1ha2VTZWN1cmVF
dAogX19aTjdXZWJDb3JlOUlucHV0VHlwZTI3c2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlRXYK
IF9fWk43V2ViQ29yZTE5aW5wdXRFbGVtZW50QWx0VGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTE5aW5wdXRFbGVtZW50QWx0VGV4dEV2CiBfX1pOSzdXZWJD
b3JlMTdSZW5kZXJUZXh0Q29udHJvbDM2cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0
aW9uRXYKIF9fWk43V2ViQ29yZTMwanNIVE1MSW5wdXRFbGVtZW50RGVmYXVsdFZhbHVlRVBOM0pT
QzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29y
ZTMyanNIVE1MSW5wdXRFbGVtZW50RGVmYXVsdENoZWNrZWRFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBf
N0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTUwODYsMTEgKzE1MDY5LDggQEAgX19a
TjdXZWJDb3JlMTdIVE1MS2V5Z2VuRWxlbWVudDZjcmVhdGVFUktOU18xM1F1YWxpZmllZE5hbWVF
UE5TXzhEb2N1bWVudEVQTlNfMTUKIF9fWk43V2ViQ29yZTE3SFRNTEtleWdlbkVsZW1lbnRDMkVS
S05TXzEzUXVhbGlmaWVkTmFtZUVQTlNfOERvY3VtZW50RVBOU18xNUhUTUxGb3JtRWxlbWVudEUK
IF9fWk43V2ViQ29yZTIwZ2V0U3VwcG9ydGVkS2V5U2l6ZXNFUk4zV1RGNlZlY3RvcklOUzBfNlN0
cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MThrZXlnZW5NZW51SXRlbTIwNDhFdgog
X19aTjdXZWJDb3JlMThrZXlnZW5NZW51SXRlbTEwMjRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kxOGtleWdlbk1lbnVJdGVtMTAyNEV2CiBfX1pON1dlYkNvcmUx
N2tleWdlbk1lbnVJdGVtNTEyRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MTdrZXlnZW5NZW51SXRlbTUxMkV2CiBfX1pON1dlYkNvcmUxN0hUTUxTZWxlY3RFbGVt
ZW50QzJFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVs
ZW1lbnRFCiBfX1pON1dlYkNvcmUxN0hUTUxPcHRpb25FbGVtZW50NmNyZWF0ZUVQTlNfOERvY3Vt
ZW50RVBOU18xNUhUTUxGb3JtRWxlbWVudEUKIF9fWk43V2ViQ29yZTEzU2VsZWN0RWxlbWVudDEz
ZGVzZWxlY3RJdGVtc0VSTlNfMTdTZWxlY3RFbGVtZW50RGF0YUVQTlNfN0VsZW1lbnRFUzRfCkBA
IC0xNTU3MSw2MCArMTU1NTEsMzQgQEAgX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudUMxRXYKIF9f
Wk43V2ViQ29yZTExQ29udGV4dE1lbnVDMkV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29u
dHJvbGxlcjhwb3B1bGF0ZUV2CiBfX1pON1dlYkNvcmUyNmNvbnRleHRNZW51SXRlbVRhZ09wZW5M
aW5rRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjZjb250ZXh0
TWVudUl0ZW1UYWdPcGVuTGlua0V2CiBfX1pON1dlYkNvcmUxNUNvbnRleHRNZW51SXRlbUMxRU5T
XzE5Q29udGV4dE1lbnVJdGVtVHlwZUVOU18xN0NvbnRleHRNZW51QWN0aW9uRVJLTjNXVEY2U3Ry
aW5nRVBOU18xMUNvbnRleHRNZW51RQogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1DMkVO
U18xOUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250ZXh0TWVudUFjdGlvbkVSS04zV1RGNlN0
cmluZ0VQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2ViQ29yZUwzM2NyZWF0ZVBsYXRmb3JtTWVu
dUl0ZW1EZXNjcmlwdGlvbkVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250ZXh0TWVu
dUFjdGlvbkVSS04zV1RGNlN0cmluZ0ViYgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTGlua0luTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Mzdjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93RXYKIF9fWk43
V2ViQ29yZTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrRXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZExpbmtUb0Rpc2tFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlu
a1RvQ2xpcGJvYXJkRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mzdjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkRXYKIF9fWk43V2ViQ29yZTM4
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3dFdgotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUlu
TmV3V2luZG93RXYKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFn
ZVRvRGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29u
dGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlza0V2CiBfX1pON1dlYkNvcmUzOGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBi
b2FyZEV2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQbGF5RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlRXYK
LV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjdjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYU11dGVFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mzdjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzRXYKIF9fWk43V2ViQ29yZTMz
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MzNjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3BF
dgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbkV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4Y29udGV4dE1lbnVJ
dGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzVjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHRFdgogX19aTjdX
ZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYkV2CiBf
X1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0NvcHlFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRNZW51SXRlbVRhZ0NvcHlFdgogX19aTjdX
ZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2tFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRlbVRhZ0dvQmFja0V2CiBfX1pON1dl
YkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkRXYKIF9f
Wk43V2ViQ29yZTIyY29udGV4dE1lbnVJdGVtVGFnU3RvcEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTIyY29udGV4dE1lbnVJdGVtVGFnU3RvcEV2CiBfX1pON1dl
YkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkRXYKIF9fWk43V2Vi
Q29yZTM4Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3dFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93RXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJdGVtVGFnTm9HdWVz
c2VzRm91bmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNv
bnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1l
bnVJdGVtVGFnSWdub3JlU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nRXYKIF9fWk43V2Vi
Q29yZTMxY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGlu
Z0V2CiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXJFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRh
Z0lnbm9yZUdyYW1tYXJFdgogX19aTjdXZWJDb3JlMjFjb250ZXh0TWVudUl0ZW1UYWdDdXRFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMWNvbnRleHRNZW51SXRl
bVRhZ0N1dEV2CiBfX1pON1dlYkNvcmUyM2NvbnRleHRNZW51SXRlbVRhZ1Bhc3RlRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjNjb250ZXh0TWVudUl0ZW1UYWdQ
YXN0ZUV2CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTdpc0NvbnRlbnRFZGl0YWJsZUV2
CiBfX1pOSzdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIyMWNoZWNrT3JFbmFibGVJZk5l
ZWRlZEVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pOSzdXZWJDb3JlMTVDb250ZXh0TWVudUl0
ZW00dHlwZUV2CkBAIC0xNTYzOCw3ICsxNTU5Miw2IEBAIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RS
ZXN1bHQxMm1lZGlhRWxlbWVudEV2CiBfX1pON1dlYkNvcmUxNUNvbnRleHRNZW51SXRlbUQxRXYK
IF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMjFhZGRJbnNwZWN0RWxlbWVudEl0
ZW1FdgogX19aTjdXZWJDb3JlMzJjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudEV2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMyY29udGV4dE1lbnVJdGVt
VGFnSW5zcGVjdEVsZW1lbnRFdgogX19aTks3V2ViQ29yZTExQ29udGV4dE1lbnUxOXBsYXRmb3Jt
RGVzY3JpcHRpb25FdgogX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudTIyc2V0UGxhdGZvcm1EZXNj
cmlwdGlvbkVQMTROU011dGFibGVBcnJheQogX19aTjdXZWJDb3JlOERvY3VtZW50MjNhY3RpdmVD
aGFpbk5vZGVEZXRhY2hlZEVQTlNfNE5vZGVFCkBAIC0xNjIxMCwxNiArMTYxNjMsMTEgQEAgX19a
Tks3V2ViQ29yZTE4VGV4dENoZWNraW5nSGVscGVyNDBndWVzc2VzRm9yTWlzc3BlbGxlZE9yVW5n
cmFtbWF0aWNhbFJhbmdlRWJSYlMKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNHJlcGxh
Y2VkU3RyaW5nRXYKIF9fWk43V2ViQ29yZUwyOXNlbGVjdGlvbkNvbnRhaW5zUG9zc2libGVXb3Jk
RVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVu
dUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMwY29udGV4dE1l
bnVJdGVtVGFnU3BlbGxpbmdNZW51RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9s
bGVyNDBjcmVhdGVBbmRBcHBlbmRTcGVsbGluZ0FuZEdyYW1tYXJTdWJNZW51RVJOU18xNUNvbnRl
eHRNZW51SXRlbUUKIF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGlu
Z0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4dE1l
bnVJdGVtVGFnQ2hlY2tTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5n
RXYKIF9fWk43V2ViQ29yZTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxs
aW5nRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5NDJjb250ZXh0
TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlNDZjb250
ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5NDZjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0
U3BlbGxpbmdBdXRvbWF0aWNhbGx5RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IyMnNwZWxsaW5nUGFu
ZWxJc1Nob3dpbmdFdgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW04c2V0VGl0bGVFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yMjRpc0dyYW1tYXJDaGVja2luZ0VuYWJs
ZWRFdgpAQCAtMTYyMjcsNjYgKzE2MTc1LDQxIEBAIF9fWk43V2ViQ29yZTZFZGl0b3IzNmlzQXV0
b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmUxNUNvbnRleHRN
ZW51SXRlbTEwc2V0U3ViTWVudUVQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2ViQ29yZTExQ29u
dGV4dE1lbnVEMUV2CiBfX1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlv
bnNNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVjb250
ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRN
ZW51Q29udHJvbGxlcjM1Y3JlYXRlQW5kQXBwZW5kU3Vic3RpdHV0aW9uc1N1Yk1lbnVFUk5TXzE1
Q29udGV4dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMzJjb250ZXh0TWVudUl0ZW1UYWdTbWFydENv
cHlQYXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMyY29u
dGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgogX19aTjdXZWJDb3JlMjljb250ZXh0TWVu
dUl0ZW1UYWdTbWFydFF1b3Rlc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXNFdgogX19aTjdXZWJDb3JlMjlj
b250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXNFdgogX19aTjdX
ZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzRXYK
IF9fWk43V2ViQ29yZTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50RXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzNjb250ZXh0TWVudUl0ZW1UYWdU
ZXh0UmVwbGFjZW1lbnRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjI3c3Vic3RpdHV0aW9uc1BhbmVs
SXNTaG93aW5nRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzNWlzQXV0b21hdGljUXVvdGVTdWJzdGl0
dXRpb25FbmFibGVkRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzNGlzQXV0b21hdGljRGFzaFN1YnN0
aXR1dGlvbkVuYWJsZWRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjMxaXNBdXRvbWF0aWNMaW5rRGV0
ZWN0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMzNpc0F1dG9tYXRpY1RleHRSZXBs
YWNlbWVudEVuYWJsZWRFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zv
cm1hdGlvbnNNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mzdjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51RXYKIF9fWk43V2ViQ29yZTIx
Q29udGV4dE1lbnVDb250cm9sbGVyMzdjcmVhdGVBbmRBcHBlbmRUcmFuc2Zvcm1hdGlvbnNTdWJN
ZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJdGVt
VGFnTWFrZVVwcGVyQ2FzZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTMxY29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZUV2CiBfX1pON1dlYkNvcmUzMWNv
bnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2VFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2VFdgogX19a
TjdXZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplRXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXpl
RXYKIF9fWk43V2ViQ29yZTI2Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnVFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRN
ZW51RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMjZjcmVhdGVBbmRBcHBl
bmRGb250U3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUyN2NvbnRl
eHRNZW51SXRlbVRhZ1Nob3dGb250c0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzRXYKIF9fWk43V2ViQ29yZTIy
Y29udGV4dE1lbnVJdGVtVGFnQm9sZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTIyY29udGV4dE1lbnVJdGVtVGFnQm9sZEV2CiBfX1pON1dlYkNvcmUyNGNvbnRl
eHRNZW51SXRlbVRhZ0l0YWxpY0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYKIF9fWk43V2ViQ29yZTI3Y29udGV4
dE1lbnVJdGVtVGFnVW5kZXJsaW5lRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Mjdjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmVFdgogX19aTjdXZWJDb3JlMjVj
b250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5MjVjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lRXYKIF9fWk43V2ViQ29yZTI0
Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5MjRjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXNFdgogX19aTjdXZWJDb3JlMjhj
b250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKIF9fWk43V2Vi
Q29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudUV2CiBf
X1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjI4Y3JlYXRlQW5kQXBwZW5kU3BlZWNo
U3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51
SXRlbVRhZ1N0YXJ0U3BlYWtpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmdFdgogX19aTjdXZWJDb3Jl
MzBjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmdFdgogX19aTjdXZWJDb3JlMzBvdmVycmlk
ZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNFUktOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0wRUVF
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMwY29udGV4dE1lbnVJ
dGVtVGFnU3RvcFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVtVGFnV3Jp
dGluZ0RpcmVjdGlvbk1lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51RXYKIF9fWk43V2Vi
Q29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMzhjcmVhdGVBbmRBcHBlbmRXcml0aW5nRGlyZWN0
aW9uU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzNGNvbnRleHRN
ZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb25FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzNGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb25FdgogX19a
TjdXZWJDb3JlMjljb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodEV2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmln
aHRFdgogX19aTjdXZWJDb3JlMjljb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdEV2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnRFdgogX19aTks3V2ViQ29yZTZFZGl0b3IxNmhhc0JpZGlTZWxlY3Rpb25Fdgog
X19aTks3V2ViQ29yZTEzS2V5Ym9hcmRFdmVudDhjaGFyQ29kZUV2CiBfX1pON1dlYkNvcmUxOGpz
RE9NU2VsZWN0aW9uVHlwZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8xMElk
ZW50aWZpZXJFCkBAIC0xNjI5NSw3ICsxNjIxOCw2IEBAIF9fWk5LN1dlYkNvcmUxMVJlbmRlckJs
b2NrMjRjb250YWluc05vblplcm9CaWRpTGV2ZWxFdgogX19aTks3V2ViQ29yZTE5QXBwbHlQcm9w
ZXJ0eUxlbmd0aElMTlNfMTBMZW5ndGhBdXRvRTFFTE5TXzE1TGVuZ3RoSW50cmluc2ljRTFFTE5T
XzE4TGVuZ3RoTWluSW50cmluc2ljRTFFTE5TXzEwTGVuZ3RoTm9uZUUxRUxOU18xNUxlbmd0aFVu
ZGVmaW5lZEUxRUUxMGFwcGx5VmFsdWVFUE5TXzE2Q1NTU3R5bGVTZWxlY3RvckVQTlNfOENTU1Zh
bHVlRQogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTExc2V0TWF4V2lkdGhFTlNfNkxlbmd0aEUK
IF9fWk43V2ViQ29yZTM2Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5RVJLTjNX
VEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNmNv
bnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKIF9fWk5L
N1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIyNmhhc0luc3BlY3RvckZyb250ZW5kQ2xpZW50
RXYKIF9fWk5LN1dlYkNvcmUyMUJhY2tGb3J3YXJkQ29udHJvbGxlcjE4Y2FuR29CYWNrT3JGb3J3
YXJkRWkKIF9fWk5LN1dlYkNvcmU0UGFnZTE4Y2FuR29CYWNrT3JGb3J3YXJkRWkKQEAgLTE3MDYz
LDcgKzE2OTg1LDYgQEAgX19aTjdXZWJDb3JlMTRTVkdTTUlMRWxlbWVudDIwZGlzY29ubmVjdENv
bmRpdGlvbnNFdgogX19aTjdXZWJDb3JlMTdTTUlMVGltZUNvbnRhaW5lcjEwdW5zY2hlZHVsZUVQ
TlNfMTRTVkdTTUlMRWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveDEwcmVuZGVyTmFtZUV2CiBfX1pON1dlYkNvcmUyN3NlYXJjaGFibGVJbmRleEludHJv
ZHVjdGlvbkV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3c2Vh
cmNoYWJsZUluZGV4SW50cm9kdWN0aW9uRXYKIF9fWk43V2ViQ29yZTE0UmVuZGVyUnVieVRleHRD
MUVQTlNfNE5vZGVFCiBfX1pOSzdXZWJDb3JlMTNSZW5kZXJSdWJ5UnVuMTFoYXNSdWJ5VGV4dEV2
CiBfX1pOSzdXZWJDb3JlMTRSZW5kZXJSdWJ5VGV4dDEwaXNSdWJ5VGV4dEV2CkBAIC0xODk2OSw3
ICsxODg5MCw2IEBAIF9fWk43V2ViQ29yZThMb2NhdGlvbjdzZXRIcmVmRVJLTjNXVEY2U3RyaW5n
RVBOU185RE9NV2luZG93RVM2XwogX19aTjdXZWJDb3JlMTdTdHlsZVBlbmRpbmdJbWFnZTEycmVt
b3ZlQ2xpZW50RVBOU18xMlJlbmRlck9iamVjdEUKIF9fWk43V2ViQ29yZTE1U3VibWl0SW5wdXRU
eXBlMTJkZWZhdWx0VmFsdWVFdgogX19aTjdXZWJDb3JlMjRzdWJtaXRCdXR0b25EZWZhdWx0TGFi
ZWxFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNHN1Ym1pdEJ1
dHRvbkRlZmF1bHRMYWJlbEV2CiBfX1pOSzdXZWJDb3JlMTFSZW5kZXJUYWJsZTIwZmlyc3RMaW5l
Qm94QmFzZWxpbmVFdgogX19aTks3V2ViQ29yZTE4UmVuZGVyVGFibGVTZWN0aW9uMjBmaXJzdExp
bmVCb3hCYXNlbGluZUV2CiBfX1pOSzdXZWJDb3JlMTVSZW5kZXJXb3JkQnJlYWsxMHJlbmRlck5h
bWVFdgpAQCAtMTk0NTUsNyArMTkzNzUsNiBAQCBfX1pON1dlYkNvcmVMMjJUb3BHcmFkaWVudElu
dGVycG9sYXRlRVB2UEtkUGQKIF9fWk43V2ViQ29yZUwyNUJvdHRvbUdyYWRpZW50SW50ZXJwb2xh
dGVFUHZQS2RQZAogX19aTjdXZWJDb3JlMTRSZXNldElucHV0VHlwZTEyZGVmYXVsdFZhbHVlRXYK
IF9fWk43V2ViQ29yZTIzcmVzZXRCdXR0b25EZWZhdWx0TGFiZWxFdgotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyM3Jlc2V0QnV0dG9uRGVmYXVsdExhYmVsRXYKIF9f
Wk43V2ViQ29yZTEyVVJMSW5wdXRUeXBlNmNyZWF0ZUVQTlNfMTZIVE1MSW5wdXRFbGVtZW50RQog
X19aTks3V2ViQ29yZTEyVVJMSW5wdXRUeXBlMTVmb3JtQ29udHJvbFR5cGVFdgogX19aTjdXZWJD
b3JlMTRJbnB1dFR5cGVOYW1lczN1cmxFdgpAQCAtMjUyMjEsNyArMjUxNDAsNiBAQCBfX1pON1dl
YkNvcmUxM0pTRXZlbnRTb3VyY2VEMUV2CiBfX1pON1dlYkNvcmUxMUV2ZW50U291cmNlRDBFdgog
X19aTkszSlNDMTRKU0dsb2JhbE9iamVjdDE0aXNHbG9iYWxPYmplY3RFdgogX19aTjdXZWJDb3Jl
MjJtdWx0aXBsZUZpbGVVcGxvYWRUZXh0RWoKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5MjJtdWx0aXBsZUZpbGVVcGxvYWRUZXh0RWoKIF9fWk43V2ViQ29yZTE3UmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94MjJjYWxjVmVydGljYWxQcmVmV2lkdGhzRXYKIF9fWk43
V2ViQ29yZTExUmVuZGVyU3R5bGUxNXNldEJveEZsZXhHcm91cEVqCiBfX1pOSzdXZWJDb3JlMTNS
ZW5kZXJMaXN0Qm94MTByZW5kZXJOYW1lRXYKQEAgLTI1NDk4LDcgKzI1NDE2LDYgQEAgX19aTjdX
ZWJDb3JlMjJIVE1MRm9ybUNvbnRyb2xFbGVtZW50MzB1cGRhdGVWaXNpYmxlVmFsaWRhdGlvbk1l
c3NhZ2VFdgogX19aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDE2dmFsdWVNaXNzaW5nVGV4
dEV2CiBfX1pOSzdXZWJDb3JlOUlucHV0VHlwZTE2dmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pON1dl
YkNvcmUzM3ZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3Np
bmdUZXh0RXYKIF9fWk43V2ViQ29yZTE3VmFsaWRhdGlvbk1lc3NhZ2U2Y3JlYXRlRVBOU18yMUZv
cm1Bc3NvY2lhdGVkRWxlbWVudEUKIF9fWk43V2ViQ29yZTE3VmFsaWRhdGlvbk1lc3NhZ2UxMHNl
dE1lc3NhZ2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU1VGltZXJJTlNfMTdWYWxpZGF0
aW9uTWVzc2FnZUVFNWZpcmVkRXYKQEAgLTI1NjA4LDExICsyNTUyNSw5IEBAIF9fWk43V2ViQ29y
ZTQ0dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JDaGVja2JveFRleHRFdgogX19aTks3
V2ViQ29yZTE0UmFkaW9JbnB1dFR5cGUxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3Jl
NDF2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclJhZGlvVGV4dEV2CiBfX1pON1dlYkNv
cmUzNnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM2dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlz
bWF0Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxNnR5cGVNaXNtYXRj
aFRleHRFdgogX19aTks3V2ViQ29yZTE0RW1haWxJbnB1dFR5cGUxNnR5cGVNaXNtYXRjaFRleHRF
dgogX19aTjdXZWJDb3JlNDF2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4
dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29yZTM4anNIVE1MRmllbGRTZXRF
bGVtZW50VmFsaWRhdGlvbk1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktO
UzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzZqc0hUTUxLZXlnZW5FbGVtZW50VmFsaWRh
dGlvbk1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlm
aWVyRQogX19aTjdXZWJDb3JlMzNqc0hUTUxGaWVsZFNldEVsZW1lbnRXaWxsVmFsaWRhdGVFUE4z
SlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMjg2MTEs
NyArMjg1MjYsNiBAQCBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJmaW5kRnJhbWVGb3JOYXZp
Z2F0aW9uRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1l
T2JqZWN0MjN0aHJvd0ludmFsaWRBY2Nlc3NFcnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk43V2Vi
Q29yZTIwUmVuZGVyRW1iZWRkZWRPYmplY3QzMHNldFNob3dzQ3Jhc2hlZFBsdWdpbkluZGljYXRv
ckV2CiBfX1pON1dlYkNvcmUxN2NyYXNoZWRQbHVnaW5UZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MTdjcmFzaGVkUGx1Z2luVGV4dEV2CiBfX1pON1dlYkNv
cmUxNlNjcmlwdENvbnRyb2xsZXIxMWNyZWF0ZVdvcmxkRXYKIF9fWk43V2ViQ29yZTlQYWdlR3Jv
dXAyMGFkZFVzZXJTY3JpcHRUb1dvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEVSS04zV1RGNlN0
cmluZ0VSS05TXzRLVVJMRU5TM18xMFBhc3NPd25QdHJJTlMzXzZWZWN0b3JJUzRfTG0wRUVFRUVT
RF9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRU5TXzI1VXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lc0UKIF9fWk43V2ViQ29yZTEwVXNlclNjcmlwdEMyRVJLTjNXVEY2U3RyaW5nRVJLTlNfNEtV
UkxFTlMxXzEwUGFzc093blB0cklOUzFfNlZlY3RvcklTMl9MbTBFRUVFRVNCX05TXzIzVXNlclNj
cmlwdEluamVjdGlvblRpbWVFTlNfMjVVc2VyQ29udGVudEluamVjdGVkRnJhbWVzRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwYTMxMzEyZDc3
MDdhY2NjZTE3NjgwZGQ2MDgzOWQ2YmM3ZDBjOTI2Li43NjRjMGQ3MzM2NDc4NWVhNWQ3MTg4OGFl
ZTFhYTYyMTExOGM0ODQ2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtMjY1NDIsMTQgKzI2NTQyLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERyYWdE
YXRhLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNjY5MCwxMCArMjY2ODIsNiBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxM
b2NhbGl6YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxMb2NhbGl6ZWRTdHJpbmdzLmNwcCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggN2EwMGIyZTM4ZDljNDA0ZDllZWU3ZDJjMzViZTc2NTM4Mzk0MzU2Mi4u
YmYzMjMzNDY2YWQwZmYzYzM1M2Q5ZjMxNWRmODUxZGRjOGNmYThhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTE0OSw3ICs1
MTQ5LDYgQEAKIAkJQkM1QTg2QjYwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVBODZCNDBD
MzM2N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uaCAqLzsgfTsKIAkJQkM1Qzc2MkExNDk3
RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRm
b3JtRXZlbnQuY3BwICovOyB9OwogCQlCQzVDNzYyQjE0OTdGRTE0MDBCQzQ3NzUgLyogUGxhdGZv
cm1FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM1Qzc2MjkxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzVDRkNBOTExRjc5MzMyMDA5
OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUNGQ0E4MTFGNzkzMzIwMDk5RUQwOSAvKiBMb2NhbGl6
YXRpb25TdHJhdGVneS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDNUVCNURCMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RUI1REEwRTgxQjdF
QTAwQjI1OTY1IC8qIEJvcmRlclZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1RUI1REQwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1
RUI1REMwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNUVCNURGMEU4MUI5QUIwMEIyNTk2
NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM1RUI1REUwRTgxQjlBQjAwQjI1OTY1IC8qIENvbGxhcHNlZEJv
cmRlclZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTUzNTMsOCArNTM1Miw2IEBACiAJCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLzsgfTsKIAkJ
QkNDMDY1ODkwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODUwRjNDRTJBNzAw
Q0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwogCQlCQ0MwNjU4QTBGM0NFMkE3
MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50
UmVjdExpc3QuaCAqLzsgfTsKLQkJQkNDMzZFQjgxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0MzNkVCNjEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5LmNwcCAqLzsgfTsKLQkJQkNDMzZFQjkxMzQyQUEzRjAwNEJFRUY3IC8qIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneS5oICovOyB9OwogCQlCQ0M0Mzg3ODBFODg2Q0M3MDA1MzNERDUgLyog
SlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzQzODc3MEU4ODZDQzcwMDUzM0RENSAvKiBKU0hUTUxJbnB1
dEVsZW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQ0M1NzMzNTBENjk1QkJFMDA2RUY1MTcgLyog
RE9NUHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNDNTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAq
LzsgfTsKIAkJQkNDNTczMzYwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMzNDBE
Njk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSAqLzsgfTsKQEAgLTEyMDU5LDcg
KzEyMDU2LDYgQEAKIAkJQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVNlbGVjdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzVDNzYyODE0OTdGRTE0MDBCQzQ3NzUgLyog
UGxhdGZvcm1FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
bGF0Zm9ybUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1Qzc2Mjkx
NDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm1FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REEwRTgxQjdFQTAwQjI1OTY1IC8qIEJv
cmRlclZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJvcmRlclZhbHVl
Lmg7IHBhdGggPSBzdHlsZS9Cb3JkZXJWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzVFQjVEQzBFODFCOEREMDBCMjU5NjUgLyogT3V0bGluZVZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE91dGxpbmVWYWx1ZS5oOyBwYXRoID0gc3R5bGUvT3V0
bGluZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUVCNURFMEU4MUI5
QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5bGUvQ29sbGFw
c2VkQm9yZGVyVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMjg0LDgg
KzEyMjgwLDYgQEAKIAkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVudFJlY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDMDY1ODUwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xp
ZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlND
bGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzA2NTg2
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkNDMzZFQjYxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
Q0MzNkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M0Mzg3NzBFODg2Q0M3MDA1
MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9n
cmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dyZXNz
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDNTczMzQwRDY5NUJCRTAw
NkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTk2OTcsOCArMTk2OTEsNiBAQAogCQkJCUY1ODc4Njg0MDJERTNCODYwMUVBNDEy
MiAvKiBDdXJzb3IuaCAqLywKIAkJCQlBNTczMkIwODEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNv
bXBvbmVudHMuY3BwICovLAogCQkJCUE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29t
cG9uZW50cy5oICovLAotCQkJCUJDQzM2RUI2MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kuY3BwICovLAotCQkJCUJDQzM2RUI3MTM0MkFBM0YwMDRCRUVGNyAv
KiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLywKIAkJCQlBNzk1NDY0MjBCNUM0Q0I0
MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovLAogCQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5
RiAvKiBEcmFnRGF0YS5oICovLAogCQkJCUE3Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFn
SW1hZ2UuY3BwICovLApAQCAtMTk3MzIsNyArMTk3MjQsNiBAQAogCQkJCUJDRkY2NDkwMEVBRDE1
QzIwMEMxRDZGNyAvKiBMZW5ndGhTaXplLmggKi8sCiAJCQkJQTdBRDJGODUwRUM4OUQwNzAwOEFC
MDAyIC8qIExpbmtIYXNoLmNwcCAqLywKIAkJCQlBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyog
TGlua0hhc2guaCAqLywKLQkJCQlCQzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0
aW9uU3RyYXRlZ3kuaCAqLywKIAkJCQlDMDQ2RTFBQjEyMDhBOUZFMDBCQTJDRjcgLyogTG9jYWxp
emVkU3RyaW5ncy5jcHAgKi8sCiAJCQkJOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8qIExvY2Fs
aXplZFN0cmluZ3MuaCAqLywKIAkJCQlBODIzOURGRTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2lu
Zy5jcHAgKi8sCkBAIC0yMTQwOSw3ICsyMTQwMCw2IEBACiAJCQkJNDE2MkE0NTExMDExNDVBRTAw
REZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
QTNENThGMTAxQzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzM2RUI5MTM0MkFBM0YwMDRCRUVG
NyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
NjdFQkY2MTAyOTYyQkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMkMxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5RFNQ
S2VybmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyRTEyQjAyNjc2MDBDMUEzNTkgLyog
RGVsYXlOb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTIzMDk0LDcgKzIzMDg0LDYgQEAKIAkJCQkw
NkU4MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9T
Y3JpcHRNYXBwaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODU2ODEyMkNBMDY0MDAzQUFC
REEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzVDRkNBOTExRjc5
MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1NzMyQjBEMTM2QTE2QzQwMDVDOEQ3QyAvKiBMb2NhbGl6ZWREYXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNTE0MkM2OTEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3Ry
aW5ncy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgwOSw3ICsyNDc5OCw2IEBACiAJCQkJNDE2MkE0
NTAxMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRo
cmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyog
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQzM2
RUI4MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE2N0VCRjUxMDI5NjJCQTAwM0QyNTJBIC8qIERlZmF1bHRTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDJCMTJCMDI2
NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMx
NjAyRDEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlOb2RlLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmYWI3NjRiODZhZWVjZmRlODAwMzhmNWQyZjMyOTE3ZjUy
OGY5ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaAorKysgL2Rldi9udWxs
CkBAIC0xLDIwNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgTG9jYWxpemF0aW9uU3RyYXRlZ3lfaAotI2RlZmluZSBMb2NhbGl6
YXRpb25TdHJhdGVneV9oCi0KLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW50U2l6
ZTsKLQotY2xhc3MgTG9jYWxpemF0aW9uU3RyYXRlZ3kgewotcHVibGljOiAgICAKLSAgICB2aXJ0
dWFsIFN0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJj
aGFibGVJbmRleEludHJvZHVjdGlvbigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBzdWJtaXRC
dXR0b25EZWZhdWx0TGFiZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNo
b29zZUZpbGVMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3Nl
TXVsdGlwbGVGaWxlc0xhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25O
b0ZpbGVTZWxlY3RlZExhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25O
b0ZpbGVzU2VsZWN0ZWRMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBkZWZhdWx0RGV0
YWlsc1N1bW1hcnlUZXh0KCkgPSAwOwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwg
U3RyaW5nIGNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKSA9IDA7Ci0jZW5kaWYKLQotI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rSW5OZXdXaW5kb3coKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBi
b2FyZCgpID0gMDsKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShFRkwpCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJs
VG9DbGlwYm9hcmQoKSA9IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3B5KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0dvQmFjaygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdHb0ZvcndhcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3RvcCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkgPSAwOwotI2lm
IFBMQVRGT1JNKEdUSykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWxl
dGUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRo
b2RzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGUo
KSA9IDA7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFU
Rk9STShFRkwpCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxs
KCkgPSAwOwotI2VuZGlmCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9H
dWVzc2VzRm91bmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
SWdub3JlU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTGVhcm5TcGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChi
b29sIHNob3cpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVj
a1NwZWxsaW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQm9sZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnVW5kZXJsaW5lKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ091dGxpbmUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpID0gMDsKLSNpZiBQTEFURk9STShN
QUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGln
aHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRz
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0eWxlcygpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5n
QXV0b21hdGljYWxseSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdWJzdGl0dXRpb25zTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhib29sIHNob3cpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydENvcHlQYXN0ZSgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlcygpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcygpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2UoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3Qg
U3RyaW5nJiByZXBsYWNlZFN0cmluZykgPSAwOwotI2VuZGlmCi0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJv
YXJkKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRp
b0xpbmtUb0NsaXBib2FyZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKSA9IDA7Ci0jZW5kaWYgLy8gRU5B
QkxFKENPTlRFWFRfTUVOVVMpCi0KLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNl
bnRTZWFyY2hlc1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudVJlY2Vu
dFNlYXJjaGVzVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Q2xlYXJS
ZWNlbnRTZWFyY2hlc1RleHQoKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBBWFdlYkFyZWFU
ZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTGlua1RleHQoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhMaXN0TWFya2VyVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBB
WEltYWdlTWFwVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKSA9IDA7
Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgQVhBUklBQ29udGVudEdy
b3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKSA9IDA7Ci0jZW5kaWYKLSAgICAKLSAgICB2
aXJ0dWFsIFN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhU
ZXh0RmllbGRBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYQ2hlY2tlZENo
ZWNrQm94QWN0aW9uVmVyYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFVuY2hlY2tlZENo
ZWNrQm94QWN0aW9uVmVyYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0QWN0
aW9uVmVyYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25W
ZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTGlua0FjdGlvblZlcmIoKSA9IDA7Ci0K
LSAgICB2aXJ0dWFsIFN0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBtdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyB1bmtub3duRmlsZVNpemVUZXh0KCkgPSAwOwotCi0jaWYgUExBVEZPUk0oV0lO
KQotICAgIHZpcnR1YWwgU3RyaW5nIHVwbG9hZEZpbGVUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGFsbEZpbGVzVGV4dCgpID0gMDsKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQot
ICAgIHZpcnR1YWwgU3RyaW5nIGJ1aWx0SW5QREZQbHVnaW5OYW1lKCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIHBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGtleWdlbk1lbnVJdGVtNTEyKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGtleWdl
bk1lbnVJdGVtMTAyNCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTIw
NDgoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25z
dCBTdHJpbmcmIGhvc3QpID0gMDsKLSNlbmRpZgotCi0gICAgdmlydHVhbCBTdHJpbmcgaW1hZ2VU
aXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSA9IDA7Ci0K
LSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmlu
Zyhjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCkgPSAwOwotCi0gICAgdmly
dHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3Zl
cmZsb3dUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3Rl
cE1pc21hdGNoVGV4dCgpID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkxvY2FsaXph
dGlvblN0cmF0ZWd5KCkKLSAgICB7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0KLSNlbmRpZiAvLyBMb2Nh
bGl6YXRpb25TdHJhdGVneV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCmluZGV4IDE0MDliYmYzMWIxYWIyZTNiNzRlZTM0MDU3YjY0ZTdlODBiY2RlMGMu
LjliZGMzZTg5NWE5OTkzZDMzODNlMDdmZmZhNTg1NDk1ODZkMTZiYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDksIDIwMTAs
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDcwMiArMjcsOTMxIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogCi0jaW5j
bHVkZSAiRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5o
IgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpZiBVU0UoQ0YpCisjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgorI2VuZGlmCisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFj
dGVyTmFtZXMuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJXZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKFBM
QVRGT1JNX1NUUkFURUdJRVMpCisvLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3
byByZWFzb25zOgorLy8gIDEpIEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJz
IGluIHRoZSBmb3JtYXQgc3RyaW5nLgorLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRk
IHN5bnRheC4KKy8vIE5vdGUgdGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNl
Y29uZCBwYXJhbWV0ZXIgdG8gdmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQorLy8g
dHlwZSBhY2NvcmRpbmcgdG8gc2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFy
ZC4KK3N0YXRpYyBTdHJpbmcgZm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4u
LikKK3sKKyNpZiBVU0UoQ0YpCisgICAgdmFfbGlzdCBhcmd1bWVudHM7CisgICAgdmFfc3RhcnQo
YXJndW1lbnRzLCBmb3JtYXQpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZT
dHJpbmcoQWRvcHRDRiwgZm9ybWF0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFy
Z3VtZW50cygwLCAwLCBmb3JtYXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7CisgICAgdmFf
ZW5kKGFyZ3VtZW50cyk7CisgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKKyNlbHNlCisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZm9ybWF0OworI2VuZGlmCit9CiAKLXN0YXRpYyBp
bmxpbmUgTG9jYWxpemF0aW9uU3RyYXRlZ3kqIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkKKyNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCitzdGF0aWMgU3RyaW5nIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVt
KGNvbnN0IFN0cmluZyYgb3JpZ2luYWwpCiB7Ci0gICAgaWYgKGhhc1BsYXRmb3JtU3RyYXRlZ2ll
cygpKQotICAgICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0
cmF0ZWd5KCk7CisgICAgaWYgKG9yaWdpbmFsLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG9y
aWdpbmFsOworCisgICAgLy8gVHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBU
aGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGggQXBwS2l0LgorICAgIHVuc2lnbmVkIG1heE51bWJl
ck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0gPSAyNDsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMsICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7CiAK
LSAgICByZXR1cm4gJkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6c2hhcmVkKCk7CisgICAg
U3RyaW5nIHRyaW1tZWQgPSBvcmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICB1bnNpZ25l
ZCBudW1iZXJPZkNoYXJhY3RlcnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRy
aW1tZWQsIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOworICAg
IHJldHVybiBudW1iZXJPZkNoYXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQg
OiB0cmltbWVkLmxlZnQobnVtYmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwogfQorI2VuZGlm
CisKKyNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKIAogU3RyaW5nIGlucHV0RWxlbWVudEFs
dFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5pbnB1dEVsZW1l
bnRBbHRUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3Vi
bWl0IChpbnB1dCBlbGVtZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRo
IG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7CiB9CiAKIFN0cmluZyByZXNldEJ1dHRvbkRlZmF1
bHRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnJlc2V0QnV0
dG9uRGVmYXVsdExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRl
ZmF1bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9
CiAKIFN0cmluZyBzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVy
IHNlYXJjaCBrZXl3b3JkczogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dCB0aGF0
IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhl
IGZvcm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKIH0KIAogU3RyaW5nIHN1Ym1pdEJ1dHRv
bkRlZmF1bHRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnN1
Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJt
aXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBh
Z2VzIik7CiB9CiAKIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBz
aW5nbGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKIH0KIAogU3Ry
aW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5maWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVs
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3Ig
YSBtdWx0aXBsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0
aXRsZSBzaG91bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7CiB9CiAKIFN0cmluZyBmaWxl
QnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIm5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUg
YnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKIH0K
IAogU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRv
IGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMg
YXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBz
ZWxlY3RlZCIpOwogfQogCiBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxzU3VtbWFyeVRl
eHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3Bs
YXkgaW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKIH0K
IAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29weUltYWdlVW5rbm93bkZp
bGVMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVua25vd24g
ZmlsZW5hbWUiKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdX
aW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBMaW5rIGluIE5ldyBXaW5k
b3ciLCAiT3BlbiBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rp
c2soKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAi
RG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJk
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFn
ZUluTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29u
dGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdp
bmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRJbWFnZVRvRGlzaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiRG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xp
cGJvYXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKTsKLX0KLQotI2lmIFBMQVRGT1JNKFFUKSB8
fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLVN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQotI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVu
RnJhbWVJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5l
dyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHkoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdDb3B5KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29w
eSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29C
YWNrKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnR29CYWNrKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAiQmFjayBj
b250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3
YXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnR29Gb3J3YXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZvcndhcmQiLCAi
Rm9yd2FyZCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3RvcCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ1N0b3AoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RvcCIsICJTdG9w
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdSZWxvYWQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmVsb2FkIiwgIlJlbG9h
ZCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnQ3V0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1dCIsICJDdXQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKFFUKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1NlbGVjdEFsbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuICJTZWxlY3QgQWxsIjsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Tm9HdWVzc2VzRm91bmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJObyBHdWVzc2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdu
b3JlU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIFNwZWxsaW5n
IiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiTGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3Rs
aWdodCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTZWFyY2hXZWIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKTsKKyNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShB
ZG9wdENGLCB3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVA
IiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHBy
b3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKKyNlbHNl
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2gg
d2l0aCBHb29nbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRT
dHJpbmcpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeShzZWxlY3RlZFN0cmluZyk7CisjaWYgZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyAgICBVTlVTRURfUEFSQU0oc2VsZWN0ZWRTdHJpbmcpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJMb29rIFVwIGluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRl
eHQgbWVudSBpdGVtIik7CisjZWxzZQorI2lmIFVTRShDRikKKyAgICBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IHNlbGVjdGVkQ0ZTdHJpbmcoQWRvcHRDRiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3Vw
TWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBm
b3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiTG9vayBVcCDigJwlQOKAnSIsICJM
b29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLCBzZWxlY3RlZENG
U3RyaW5nLmdldCgpKTsKKyNlbHNlCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg
4oCcPHNlbGVjdGlvbj7igJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVj
dGVkIHdvcmQiKS5yZXBsYWNlKCI8c2VsZWN0aW9uPiIsIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1
cE1lbnVJdGVtKHNlbGVjdGVkU3RyaW5nKSk7CisjZW5kaWYKKyNlbmRpZgogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1h
cigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJZ25vcmUg
R3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3BlbGxpbmdNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQg
c3ViLW1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxs
aW5nUGFuZWwoYm9vbCBzaG93KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChzaG93KTsKKyAgICBpZiAoc2hv
dykKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1t
YXIiLCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUg
U3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7CiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmdXaGlsZVR5cGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sg
c3BlbGxpbmcgd2hpbGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJX
aXRoU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgR3JhbW1hciBX
aXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdGb250TWVu
dSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4dCBzdWIt
bWVudSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2hvd0ZvbnRzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlNob3cgRm9udHMiLCAiU2hvdyBmb250cyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlm
CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJJdGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVu
dSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3R5bGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnU3R5bGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0eWxlcy4u
LiIsICJTdHlsZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1Nob3dDb2xvcnMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNob3cgQ29sb3JzIiwgIlNob3cgY29sb3JzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTcGVlY2giLCAiU3BlZWNoIGNvbnRleHQgc3ViLW1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0
YXJ0U3BlYWtpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RhcnQgU3BlYWtpbmci
LCAiU3RhcnQgc3BlYWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0Rp
cmVjdGlvbk1lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJQYXJhZ3JhcGggRGlyZWN0aW9uIiwgIlBhcmFncmFwaCBkaXJlY3Rpb24gY29udGV4
dCBzdWItbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGly
ZWN0aW9uTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlvbiBjb250ZXh0IHN1
Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJl
Y3Rpb24oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRl
ZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmln
aHQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Jp
Z2h0VG9MZWZ0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmln
aHQgdG8gTGVmdCIsICJSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNp
ZiBQTEFURk9STShNQUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxp
bmdBdXRvbWF0aWNhbGx5KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkiLCAiQ29y
cmVjdCBTcGVsbGluZyBBdXRvbWF0aWNhbGx5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNN
ZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAiU3Vic3Rp
dHV0aW9ucyBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJvb2wgc2hvdykKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoc2hv
dyk7CisgICAgaWYgKHNob3cpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFN1
YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgQ29weS9QYXN0ZSIsICJTbWFydCBDb3B5L1Bh
c3RlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdT
bWFydFF1b3RlcygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNt
YXJ0IFF1b3RlcyIsICJTbWFydCBRdW90ZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcygp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1NtYXJ0TGlua3MoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAi
U21hcnQgTGlua3MgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJUZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFjZW1lbnQgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0
aW9uc01lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlRyYW5zZm9ybWF0aW9ucyIsICJUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFr
ZVVwcGVyQ2FzZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVyIENhc2Ui
LCAiTWFrZSBVcHBlciBDYXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNlIGNvbnRl
eHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXpl
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnQ2FwaXRhbGl6ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDYXBpdGFsaXplIiwg
IkNhcGl0YWxpemUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFj
ayhyZXBsYWNlZFN0cmluZyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVw
bGFjZWRTdHJpbmc7CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIs
ICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5O
ZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcg
V2luZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
Q29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNv
cHkgVmlkZW8gQWRkcmVzcyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtU
b0NsaXBib2FyZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJDb3B5IEF1ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0
aW9uIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUNvbnRyb2xzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJDb250cm9scyIsICJNZWRpYSBDb250cm9scyBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFMb29wKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEg
TG9vcCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJFbnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3Jl
ZW4gY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5Iiwg
Ik1lZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGF1c2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAgICAgCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0
RWxlbWVudCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAi
SW5zcGVjdCBFbGVtZW50IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKIAogU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4
dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1lbnVOb1Jl
Y2VudFNlYXJjaGVzVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyByZWNlbnQg
c2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVu
IGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2
ZSBiZWVuIHBlcmZvcm1lZCIpOwogfQogCi1TdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVz
VGV4dCAoKQorU3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0
ICgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwg
Zm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24g
dGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7CiB9
CiAKIFN0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hl
c1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVz
IiwgIm1lbnUgaXRlbSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdz
IGNvbnRlbnRzIik7CiB9CiAKIFN0cmluZyBBWFdlYkFyZWFUZXh0KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhXZWJBcmVhVGV4dCgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJIVE1MIGNvbnRlbnQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciB3ZWIgYXJlYSIpOwogfQogCiBTdHJpbmcgQVhMaW5rVGV4dCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTGlua1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygibGluayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpbmsi
KTsKIH0KIAogU3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5BWExpc3RNYXJrZXJUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImxpc3QgbWFya2VyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
bGlzdCBtYXJrZXIiKTsKIH0KIAogU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhJbWFnZU1hcFRleHQoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3IgaW1hZ2UgbWFwIik7CiB9CiAKIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhIZWFkaW5nVGV4dCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3IgaGVhZGluZ3MiKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3RU
ZXJtVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJtIiwgInRlcm0gd29yZCBv
ZiBhIGRlZmluaXRpb24iKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9u
VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlv
bkxpc3REZWZpbml0aW9uVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkZWZpbml0
aW9uIiwgImRlZmluaXRpb24gcGhyYXNlIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJp
bmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWEFSSUFDb250ZW50R3JvdXBUZXh0KGFy
aWFUeXBlKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0IikKKyAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJB
UklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBh
cyBhbiBhbGVydCBkaWFsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRp
b25EaWFsb2ciKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlhbG9nIiwgIkFuIEFS
SUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9nLiIpOworICAgIGlm
IChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFz
IGEgY29uc29sZSBsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25N
YXJxdWVlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAiQW4gQVJJ
QSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUuIik7CisgICAgaWYg
KGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiYXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBn
cm91cCB0aGF0IGFjdHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOworICAgIGlmIChhcmlhVHlwZSA9
PSAiQVJJQUFwcGxpY2F0aW9uVGltZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
dGltZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiB1cGRh
dGluZyB0aW1lci4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCisgICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxp
dHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBRG9jdW1lbnRBcnRpY2xlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFy
dGljbGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhcnRp
Y2xlLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50Tm90ZSIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJub3RlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91
cCB0aGF0IGFjdHMgYXMgYSBub3RlIGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBRG9jdW1lbnRSZWdpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cmVnaW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0
aW5jdCByZWdpb24gaW4gYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFM
YW5kbWFya0FwcGxpY2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxp
Y2F0aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXBw
bGljYXRpb24uIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtCYW5uZXIiKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYmFubmVyIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBiYW5uZXIuIik7CisgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBTGFuZG1hcmtDb21wbGVtZW50YXJ5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImNvbXBsZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0
cyBhcyBhIHJlZ2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOworICAgIGlmIChh
cmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQ29udGVudEluZm8iKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiY29udGVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBj
b250YWlucyBjb250ZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrTWFp
biIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYWluIiwgIkFuIEFSSUEgYWNjZXNz
aWJpbGl0eSBncm91cCB0aGF0IGlzIHRoZSBtYWluIHBvcnRpb24gb2YgdGhlIHdlYnNpdGUuIik7
CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5
IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBhIHdl
YnNpdGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGNvbnRhaW5zIGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOwor
ICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInRvb2x0aXAiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdy
b3VwIHRoYXQgYWN0cyBhcyBhIHRvb2x0aXAuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklB
VGFiUGFuZWwiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVsIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IG9mIGEg
dGFiLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91
cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOworICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KICNlbmRpZgogICAgIAogU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQnV0dG9uQWN0aW9uVmVyYigpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlv
biB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFj
Y2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhSYWRpb0J1dHRvbkFjdGlvblZl
cmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0
aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQs
IGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhUZXh0RmllbGRBY3Rp
b25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhUZXh0Rmll
bGRBY3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRlIiwgIlZl
cmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVsZCBp
cyBzZWxlY3RlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWENo
ZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5BWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygidW5jaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2Nj
dXIgd2hlbiBhIGNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3Np
YmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYVW5jaGVja2VkQ2hlY2tCb3hB
Y3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2Jv
eCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFY
TGlua0FjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5B
WExpbmtBY3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAiLCAiVmVy
YiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNr
ZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhNZW51TGlzdFBv
cHVwQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFY
TWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiAic2VsZWN0IjsKIH0KIAogU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhNZW51TGlzdEFjdGlvblZlcmIoKTsK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0IjsKIH0KIAogU3RyaW5n
IG1pc3NpbmdQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+bWlzc2luZ1BsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWlzc2lu
ZyBQbHVnLWluIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3Np
bmciKTsKIH0KIAogU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y3Jhc2hlZFBsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiUGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCBpZiBw
bHVnaW4gaG9zdCBwcm9jZXNzIGhhcyBjcmFzaGVkIik7CiB9CiAKIFN0cmluZyBtdWx0aXBsZUZp
bGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPm11bHRpcGxlRmlsZVVwbG9hZFRleHQobnVtYmVyT2ZGaWxlcyk7
CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxl
cyIsICJMYWJlbCB0byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEg
ZmlsZSB1cGxvYWQgY29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJP
ZkZpbGVzKTsKIH0KIAogU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT51bmtub3duRmlsZVNpemVUZXh0KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0
b3J5IGxpc3RpbmcgaXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oV0lOKQogU3RyaW5nIHVwbG9h
ZEZpbGVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dXBsb2Fk
RmlsZVRleHQoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAidXBsb2FkIjsK
IH0KIAogU3RyaW5nIGFsbEZpbGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmFsbEZpbGVzVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuICJhbGwgZmlsZXMiOwogfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcg
YnVpbHRJblBERlBsdWdpbk5hbWUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5idWlsdEluUERGUGx1Z2luTmFtZSgpOworICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00u
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIldlYktpdCBidWlsdC1pbiBQREYiLCAiUHNldWRv
IHBsdWctaW4gbmFtZSwgdmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZh
cmkuIik7CiB9CiAKIFN0cmluZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9u
KCk7CisgICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4KKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiUG9ydGFibGUgRG9jdW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkg
dHlwZSBzdXBwb3J0ZWQgYnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxl
ZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4iKTsKIH0KIAogU3RyaW5nIGtleWdlbk1lbnVJdGVt
NTEyKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0
ZW01MTIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1l
bnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXln
ZW5NZW51SXRlbTEwMjQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5r
ZXlnZW5NZW51SXRlbTEwMjQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAyNCAoTWVk
aXVtIEdyYWRlKSIsICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwog
fQogCiBTdHJpbmcga2V5Z2VuTWVudUl0ZW0yMDQ4KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0ZW0yMDQ4KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIjIwNDggKEhpZ2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBv
cC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0
cmluZyYgaG9zdCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2Vu
S2V5Y2hhaW5JdGVtTmFtZShob3N0KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RD
RlN0cmluZyhBZG9wdENGLCBob3N0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBr
ZXljaGFpbiBrZXkgZ2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0cmluZy5n
ZXQoKSk7CiB9CiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorU3RyaW5nIGh0bWxTZWxl
Y3RNdWx0aXBsZUl0ZW1zKHNpemVfdCBjb3VudCkKK3sKKyAgICBzd2l0Y2ggKGNvdW50KSB7Cisg
ICAgY2FzZSAwOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMCBJdGVtcyIsICJQcmVz
ZW50IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gbm8gPG9wdGlvbj4gaXRlbXMg
YXJlIHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAgICBjYXNlIDE6CisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCIxIEl0ZW0iLCAiUHJlc2VudCB0aGUgZWxlbWVudCA8c2VsZWN0IG11bHRp
cGxlPiB3aGVuIGEgc2luZ2xlIDxvcHRpb24+IGlzIHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9T
VFJJTkcoIiV6dSBJdGVtcyIsICJQcmVzZW50IHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgPG9wdGlv
bj4gaXRlbXMgaW4gYSA8c2VsZWN0IG11bHRpcGxlPiBlbGVtZW50IChpT1Mgb25seSkiKSwgY291
bnQpOworICAgIH0KK30KKyNlbmRpZgorCiBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcm
IGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5pbWFnZVRpdGxlKGZpbGVuYW1lLCBzaXplKTsKKyNpZiBVU0UoQ0YpCisj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7
CisgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5
Q3VycmVudCgpKTsKKyAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRl
cihBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51
bWJlckZvcm1hdHRlckRlY2ltYWxTdHlsZSkpOworCisgICAgaW50IHdpZHRoSW50ID0gc2l6ZS53
aWR0aCgpOworICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1i
ZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7CisgICAgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiB3aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0
ZVN0cmluZ1dpdGhOdW1iZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOworCisg
ICAgaW50IGhlaWdodEludCA9IHNpemUuaGVpZ2h0KCk7CisgICAgUmV0YWluUHRyPENGTnVtYmVy
UmVmPiBoZWlnaHQoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwg
JmhlaWdodEludCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFk
b3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0
ZXIuZ2V0KCksIGhlaWdodC5nZXQoKSkpOworCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0
cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3Ig
YSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiks
IGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcu
Z2V0KCkpOworI2Vsc2UKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJp
bmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJuIGZvcm1h
dExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRv
dyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJv
bCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSk7CisjZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmlu
ZyhXRUJfVUlfU1RSSU5HKCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxl
IGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3Qg
eCkiKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+Iiwg
ZmlsZW5hbWUpOworI2VuZGlmCiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVU
ZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWVkaWFFbGVtZW50
TG9hZGluZ1N0YXRlVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4u
IiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9h
ZGluZyIpOwogfQogCiBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1lZGlhRWxlbWVudExpdmVC
cm9hZGNhc3RTdGF0ZVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2ZSBCcm9h
ZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEg
bGl2ZSBicm9hZGNhc3QiKTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1l
bnRTdHJpbmcoY29uc3QgU3RyaW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmlu
Zyhjb250cm9sTmFtZSk7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsK
KyAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09
ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChu
YW1lID09ICJVbk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5t
dXRlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBi
dXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
cGxheSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0
aW9uIGZvciBwYXVzZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xl
IGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xp
ZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVy
IHRodW1iIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1
bWIiKTsKKyAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09
ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
InJldHVybiB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IHJldHVybiB0byByZWFsIHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRU
aW1lRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxh
eSIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9
PSAiU3RhdHVzRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKKyAg
ICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
ZW50ZXIgZnVsbHNjcmVlbiBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRC
dXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOwor
ICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZv
ciBmYXN0IHJldmVyc2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0
aW9uc0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBj
YXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2Vk
IGNhcHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlv
bnMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0
aW9ucyBidXR0b24iKTsKKworICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWlu
ZXIgc2hvdWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5
LgorICAgIGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwog
fQogCi1TdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0
cmluZyYgY29udHJvbE5hbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhl
bHBUZXh0KGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnRyb2xOYW1l
KTsKKyAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImF1ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNw
bGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBj
b250cm9sbGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBz
dGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZpZGVv
IGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11
dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIGF1ZGlvIHRy
YWNrcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBidXR0b24iKTsKKyAg
ICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJiZWdpbiBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxheSBidXR0
b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygicGF1c2UgcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IHBhdXNlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRo
dW1iIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIg
dGh1bWIiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0aHVt
YiIpOworICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygic2VlayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIGp1bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1l
ID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciByZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBidXR0b24i
KTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChuYW1l
ID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJudW1iZXIgb2Ygc2Vjb25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIHJlbWFpbmluZyB0aW1lIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAi
U3RhdHVzRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50IG1v
dmllIHN0YXR1cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3RhdHVzIGRp
c3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygic2VlayBxdWlja2x5IGJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxw
IHRleHQgZm9yIGZhc3QgcmV3aW5kIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9y
d2FyZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkg
Zm9yd2FyZCIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRv
biIpOworICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlmIChu
YW1lID09ICJTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygic3RhcnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChu
YW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygic3RvcCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5sb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsK
KyAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
aW5kZWZpbml0ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmlu
aXRlIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOworCisgICAgaW50IHNlY29uZHMgPSBz
dGF0aWNfY2FzdDxpbnQ+KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAo
NjAgKiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAg
IGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOwor
CisgICAgaWYgKGRheXMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VC
X1VJX1NUUklORygiJTEkZCBkYXlzICUyJGQgaG91cnMgJTMkZCBtaW51dGVzICU0JGQgc2Vjb25k
cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZh
bHVlID49IDEgZGF5IiksIGRheXMsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAo
aG91cnMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklO
RygiJTEkZCBob3VycyAlMiRkIG1pbnV0ZXMgJTMkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgbWludXRlcyIp
LCBob3VycywgbWludXRlcywgc2Vjb25kcyk7CisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJl
dHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBtaW51dGVzICUy
JGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxl
ciB0aW1lIHZhbHVlID49IDYwIHNlY29uZHMiKSwgbWludXRlcywgc2Vjb25kcyk7CisgICAgcmV0
dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIHNlY29uZHMiLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA8
IDYwIHNlY29uZHMiKSwgc2Vjb25kcyk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZh
bHVlTWlzc2luZ1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygidmFsdWUgbWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZv
cm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKIH0KIAogU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdU
ZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwog
fQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JGaWxlVGV4dCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2lu
Z1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVs
dGlwbGVGaWxlVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9u
TWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JTZWxlY3RUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7
CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlv
biBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hp
bmcgdHlwZSIpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JF
bWFpbFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0
aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaEZvck11bHRpcGxlRW1haWxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0
dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7
CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0
Y2hUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAi
VmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNv
bnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKIFN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9y
bSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93
ZWQgbGVuZ3RoIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dChjb25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT52YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1
dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKTsK
IH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3Ry
aW5nJikKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5n
ZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
d2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKIH0KIAogU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVN0ZXBNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBt
aXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0
aCB2YWx1ZSBub3QgcmVzcGVjdGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKIH0KIAogI2VuZGlm
IC8vIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCmluZGV4IGE3M2M5OTFmZWRhOTdlZTk5YjlhZmUyODdjNWM2MGI2MzFh
NzM1MmEuLjRlNjhhNjhhYTZhZDU3N2I1MGUzYmE1MjM4YWU2MzYzNDM0YmNhNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE3NCw2ICsxNzQsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1l
KGNvbnN0IFN0cmluZyYgaG9zdCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBT
dHJpbmcgaHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90IG51bSk7CisjZW5kaWYKKwogICAg
IFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUm
IHNpemUpOwogCiAgICAgU3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGRj
OWZjMzVhNzBlOTNjZTY0MzlmN2JhNzMzZjQ0ZDNkMjc2M2M3NGEuLjY0M2YzNzUwNThlY2I4MzBi
YjU3ZDUwZTkyY2RkNjU5MDNiMTYyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMjksOCArMjksNiBAQAogCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJhdGVnaWVzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUGxhdGZvcm1TdHJhdGVnaWVz
KiBzX3BsYXRmb3JtU3RyYXRlZ2llczsKQEAgLTU5LDExICs1Nyw2IEBAIGJvb2wgaGFzUGxhdGZv
cm1TdHJhdGVnaWVzKCkKICAgICByZXR1cm4gc19wbGF0Zm9ybVN0cmF0ZWdpZXM7CiB9CiAKLUxv
Y2FsaXphdGlvblN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxvY2FsaXphdGlv
blN0cmF0ZWd5KCkKLXsKLSAgICByZXR1cm4gbmV3IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFBMQVRGT1JN
X1NUUkFURUdJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2ll
cy5oCmluZGV4IDliZGQzOTdmOGFlNGExNjE2N2ZhZjY0ZjE0OGQzNjJkZGY4YjNlZjcuLjBiNDZj
OTBmMWQwMmI0ZGExZDE5ZjM4ZTVjMzVhZDNjODIxY2IzODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zMyw3ICszMyw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIENvb2tpZXNTdHJhdGVneTsKIGNsYXNzIFBhc3RlYm9hcmRTdHJh
dGVneTsKIGNsYXNzIFBsdWdpblN0cmF0ZWd5OwotY2xhc3MgTG9jYWxpemF0aW9uU3RyYXRlZ3k7
CiBjbGFzcyBWaXNpdGVkTGlua1N0cmF0ZWd5OwogCiBjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXMg
ewpAQCAtNTIsMTMgKzUxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9wbHVnaW5TdHJh
dGVneTsKICAgICB9CiAKLSAgICBMb2NhbGl6YXRpb25TdHJhdGVneSogbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2xvY2FsaXphdGlvblN0cmF0ZWd5KQotICAg
ICAgICAgICAgbV9sb2NhbGl6YXRpb25TdHJhdGVneSA9IGNyZWF0ZUxvY2FsaXphdGlvblN0cmF0
ZWd5KCk7Ci0gICAgICAgIHJldHVybiBtX2xvY2FsaXphdGlvblN0cmF0ZWd5OwotICAgIH0KLQog
ICAgIFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIHZpc2l0ZWRMaW5rU3RyYXRlZ3koKQogICAgIHsKICAg
ICAgICAgaWYgKCFtX3Zpc2l0ZWRMaW5rU3RyYXRlZ3kpCkBAIC03Nyw3ICs2OSw2IEBAIHByb3Rl
Y3RlZDoKICAgICBQbGF0Zm9ybVN0cmF0ZWdpZXMoKQogICAgICAgICA6IG1fY29va2llc1N0cmF0
ZWd5KDApCiAgICAgICAgICwgbV9wbHVnaW5TdHJhdGVneSgwKQotICAgICAgICAsIG1fbG9jYWxp
emF0aW9uU3RyYXRlZ3koMCkKICAgICAgICAgLCBtX3Zpc2l0ZWRMaW5rU3RyYXRlZ3koMCkKICAg
ICAgICAgLCBtX3Bhc3RlYm9hcmRTdHJhdGVneSgwKQogICAgIHsKQEAgLTkwLDEzICs4MSwxMSBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgQ29va2llc1N0cmF0ZWd5KiBjcmVh
dGVDb29raWVzU3RyYXRlZ3koKSA9IDA7CiAgICAgdmlydHVhbCBQbHVnaW5TdHJhdGVneSogY3Jl
YXRlUGx1Z2luU3RyYXRlZ3koKSA9IDA7Ci0gICAgdmlydHVhbCBMb2NhbGl6YXRpb25TdHJhdGVn
eSogY3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKICAgICB2aXJ0dWFsIFZpc2l0ZWRMaW5r
U3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKSA9IDA7CiAgICAgdmlydHVhbCBQ
YXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpID0gMDsgCiAKICAg
ICBDb29raWVzU3RyYXRlZ3kqIG1fY29va2llc1N0cmF0ZWd5OwogICAgIFBsdWdpblN0cmF0ZWd5
KiBtX3BsdWdpblN0cmF0ZWd5OwotICAgIExvY2FsaXphdGlvblN0cmF0ZWd5KiBtX2xvY2FsaXph
dGlvblN0cmF0ZWd5OwogICAgIFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIG1fdmlzaXRlZExpbmtTdHJh
dGVneTsKICAgICBQYXN0ZWJvYXJkU3RyYXRlZ3kqIG1fcGFzdGVib2FyZFN0cmF0ZWd5OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJh
dGVnaWVzUXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0
cmF0ZWdpZXNRdC5jcHAKaW5kZXggNjRkNDI0ZDk1NmUzYzA4ZjU0ZmVhYjdiYjE2NTg5MTQyZjIy
ZWEyZS4uZmI5MjhmYTFmMjM1OTYxMzE3MWRhY2E5YzgzZGVmM2JlNGE1ODQ2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdp
ZXNRdC5jcHAKQEAgLTE0NSw2MDggKzE0NSw2IEBAIHZvaWQgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmdldFBsdWdpbkluZm8oY29uc3QgV2ViQ29yZTo6UGFnZSogcGFnZSwgVmVjdG9yPFdlYkNvCiAK
IH0KIAotCi0vLyBMb2NhbGl6YXRpb25TdHJhdGVneQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJTdWJtaXQgKGlucHV0IGVsZW1l
bnQpIGFsdCB0ZXh0IGZvciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8gYWx0LCB0aXRsZSwgb3Ig
dmFsdWUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpyZXNldEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVzZXQgYnV0dG9ucyBpbiBm
b3JtcyBvbiB3ZWIgcGFnZXMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpz
ZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4LiBF
bnRlciBzZWFyY2gga2V5d29yZHM6ICIsICJ0ZXh0IHRoYXQgYXBwZWFycyBhdCB0aGUgc3RhcnQg
b2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBhICdzZWFyY2hhYmxl
IGluZGV4JyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnN1Ym1pdEJ1dHRv
bkRlZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiU3VibWl0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFN1Ym1pdCBidXR0b25z
IGluIGZvcm1zIG9uIHdlYiBwYWdlcyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlIiwgInRpdGxlIGZvciBh
IHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVz
TGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBmaWxlIGNob29zZXIg
YnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQgYmUgYXMgc2hvcnQg
YXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZmlsZUJ1
dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNw
bGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2Vs
ZWN0ZWQiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uTm9G
aWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBp
biBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0
ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZGVmYXVsdERldGFpbHNTdW1tYXJ5
VGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0
IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIGluIE5ldyBX
aW5kb3ciLCAiT3BlbiBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5r
VG9EaXNrKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTYXZlIExpbmsuLi4iLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0
ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IExpbmsiLCAiQ29weSBMaW5rIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gSW1hZ2UiLCAiT3BlbiBJbWFnZSBp
biBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBJ
bWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJDb3B5IEltYWdlIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVy
bFRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIEFkZHJlc3MiLCAiQ29weSBJbWFnZSBBZGRyZXNzIG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51
SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4g
TmV3IFdpbmRvdyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEF1ZGlvIiwgIk9wZW4gQXVkaW8g
aW4gTmV3IFdpbmRvdyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBWaWRlbyIsICJDb3B5
IFZpZGVvIExpbmsgTG9jYXRpb24iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgQXVkaW8i
LCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIENv
bnRyb2xzIiwgIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIExv
b3AiLCAiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRW50
ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxh
eSIsICJQbGF5Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UiLCAiUGF1c2UiKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUiLCAiTXV0
ZSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5GcmFtZUluTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEZyYW1lIiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdp
bmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkiLCAiQ29weSBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRh
Z0dvQmFjaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiR28gQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJHbyBG
b3J3YXJkIiwgIkZvcndhcmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdG9wIiwgIlN0b3AgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdD
dXQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkN1dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGFzdGUiLCAiUGFzdGUgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlbGVjdCBBbGwiLCAiU2VsZWN0IEFsbCBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBHdWVzc2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMg
Rm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBT
cGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkFkZCBUbyBEaWN0aW9uYXJ5
IiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWFyY2ggVGhl
IFdlYiIsICJTZWFyY2ggVGhlIFdlYiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFy
eShjb25zdCBTdHJpbmcmKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkxvb2sgVXAgSW4gRGljdGlvbmFyeSIsICJMb29rIFVwIGluIERpY3Rp
b25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgR3JhbW1hciBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3BlbGxpbmciLCAiU3BlbGxpbmcgYW5kIEdy
YW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQot
ewotICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpIDoKLSAg
ICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
SGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJDaGVjayBTcGVsbGluZyIsICJDaGVjayBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmdXaGlsZVR5cGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNr
IHNwZWxsaW5nIHdoaWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0
aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJGb250cyIsICJGb250IGNvbnRl
eHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ0JvbGQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkJvbGQiLCAiQm9sZCBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxp
YygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiSXRhbGljIiwgIkl0YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5kZXJsaW5l
IiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk91dGxpbmUiLCAiT3V0bGlu
ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEaXJlY3Rpb24iLCAiV3Jp
dGluZyBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRl
eHQgRGlyZWN0aW9uIiwgIlRleHQgZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0RlZmF1
bHREaXJlY3Rpb24oKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmlnaHQgdG8gTGVmdCIsICJSaWdodCB0byBMZWZ0
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkluc3BlY3QiLCAiSW5zcGVjdCBFbGVt
ZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyByZWNlbnQgc2VhcmNoZXMiLCAi
TGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9u
IHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBiZWVuIHBlcmZv
cm1lZCIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnNlYXJjaE1lbnVSZWNl
bnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlJlY2VudCBzZWFyY2hlcyIsICJsYWJlbCBmb3IgZmlyc3QgaXRlbSBp
biB0aGUgbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxk
IGltYWdlLCB1c2VkIGFzIGVtYmVkZGVkIG1lbnUgdGl0bGUiKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNsZWFy
IHJlY2VudCBzZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJjaGVzIG1lbnUgdGhh
dCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OkFYV2ViQXJlYVRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTGlua1Rl
eHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTGlzdE1hcmtlclRleHQoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpBWEhlYWRpbmdUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWERlZmluaXRp
b25MaXN0VGVybVRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0
cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYRGVmaW5pdGlvbkxp
c3REZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
U3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhCdXR0b25BY3Rp
b25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVy
YigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWE1lbnVMaXN0QWN0aW9uVmVyYigpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6QVhMaW5rQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0IHRvIGJlIHVz
ZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNyYXNoZWRQbHVnaW5UZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpt
dWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OnVua25vd25GaWxlU2l6ZVRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGly
ZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIl
MSAoJTJ4JTMgcGl4ZWxzKSIsICJUaXRsZSBzdHJpbmcgZm9yIGltYWdlcyIpLmFyZyhmaWxlbmFt
ZSkuYXJnKHNpemUud2lkdGgoKSkuYXJnKHNpemUuaGVpZ2h0KCkpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6Om1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQotewotICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxvYWRpbmcu
Li4iLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHRoZSBtZWRpYSBpcyBs
b2FkaW5nIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bWVkaWFFbGVtZW50
TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxl
ciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQot
I2lmIEVOQUJMRShWSURFTykKLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6
ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBp
ZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQXVkaW8gRWxlbWVudCIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gRWxl
bWVudCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiTXV0
ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIk11dGUgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAg
IGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbm11dGUgQnV0dG9uIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSBCdXR0
b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlBhdXNl
QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiUGF1c2UgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAg
IGlmIChuYW1lID09ICJTbGlkZXIiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTbGlkZXIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKLSAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2xpZGVyIFRodW1iIiwgIk1lZGlh
IGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQot
ICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJS
ZXdpbmQgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1l
ID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV0dXJuIHRvIFJlYWwtdGltZSBCdXR0b24i
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRU
aW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkVsYXBzZWQgVGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
LSAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZW1haW5pbmcgVGltZSIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlz
cGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlN0YXR1cyBEaXNwbGF5IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAg
IGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRnVsbHNjcmVlbiBCdXR0b24iLCAiTWVk
aWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiU2VlayBGb3J3YXJkIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
LSAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEJhY2sgQnV0dG9uIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotCi0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRI
ZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxl
bWVudCIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkF1ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5
IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJWaWRlb0Vs
ZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJWaWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxh
eSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1
dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIk11dGUgYXVkaW8gdHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwot
ICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbm11dGUgYXVkaW8gdHJhY2tzIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikK
LSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
QmVnaW4gcGxheWJhY2siLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5h
bWUgPT0gIlBhdXNlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UgcGxheWJhY2siLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIi
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlclRo
dW1iIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiTW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV3aW5kIG1vdmllIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFsLXRpbWUiLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxh
eSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkN1cnJlbnQgbW92aWUgdGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAg
ICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZW1haW5pbmcgbW92aWUgdGlt
ZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU3RhdHVz
RGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkN1cnJlbnQgbW92aWUgc3RhdHVzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOwotICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSBtb3ZpZSBpbiBm
dWxsLXNjcmVlbiBtb2RlIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChu
YW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBiYWNrIiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0g
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNl
ZWsgcXVpY2tseSBmb3J3YXJkIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0
IHRpbWUpCi17Ci0gICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKLSAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZpbml0ZSB0aW1lIiwgIk1l
ZGlhIHRpbWUgZGVzY3JpcHRpb24iKTsKLQotICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0
aW1lKTsKLSAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsKLSAgICBpbnQg
aG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOwotICAgIGludCBtaW51dGVzID0gKHNlY29uZHMg
LyA2MCkgJSA2MDsKLSAgICBzZWNvbmRzICU9IDYwOwotCi0gICAgaWYgKGRheXMpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGRheXMg
JTIgaG91cnMgJTMgbWludXRlcyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24i
KS5hcmcoZGF5cykuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOwotCi0gICAg
aWYgKGhvdXJzKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICIlMSBob3VycyAlMiBtaW51dGVzICUzIHNlY29uZHMiLCAiTWVkaWEgdGltZSBk
ZXNjcmlwdGlvbiIpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKLQotICAg
IGlmIChtaW51dGVzKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICIlMSBtaW51dGVzICUyIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlw
dGlvbiIpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7Ci0KLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBzZWNvbmRzIiwgIk1lZGlhIHRpbWUg
ZGVzY3JpcHRpb24iKS5hcmcoc2Vjb25kcyk7Ci19Ci0KLSNlbHNlIC8vIEVOQUJMRShWSURFTykK
LS8vIEZJWE1FOiAjaWYgRU5BQkxFKFZJREVPKSBzaG91bGQgYmUgaW4gdGhlIGJhc2UgY2xhc3MK
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxl
bWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFUaW1lRGVz
Y3JpcHRpb24oZmxvYXQgdGltZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoVklERU8pCi0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hU
ZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0K
LQotCiAvLyBWaXNpdGVkTGlua1N0cmF0ZWd5CiAKIGJvb2wgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmlzTGlua1Zpc2l0ZWQoUGFnZSogcGFnZSwgTGlua0hhc2ggaGFzaCwgY29uc3QgS1VSTCYgYmFz
ZVVSTCwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVVUkwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmggYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmgKaW5kZXgg
NTA0OTE5ZTM4M2ZjOTQ3OTIyYzg0YjI3NWZhNGVkMTBmMjhhMWZmNi4uNjAxYzUxNmYyYzFiMTY0
MDUwMWYyMzljNTBhNzhlZTI2Mzc2OGNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRl
Y25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKICAqCkBAIC0yOSw3ICsyOSw2IEBACiAjZGVmaW5lIFBsYXRm
b3JtU3RyYXRlZ2llc1F0X2gKIAogI2luY2x1ZGUgPENvb2tpZXNTdHJhdGVneS5oPgotI2luY2x1
ZGUgPExvY2FsaXphdGlvblN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8UGxhdGZvcm1TdHJhdGVnaWVz
Lmg+CiAjaW5jbHVkZSA8UGx1Z2luU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxWaXNpdGVkTGlua1N0
cmF0ZWd5Lmg+CkBAIC0zOCw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFBh
Z2U7CiB9CiAKLWNsYXNzIFBsYXRmb3JtU3RyYXRlZ2llc1F0IDogcHVibGljIFdlYkNvcmU6OlBs
YXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3ksIHByaXZh
dGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6TG9jYWxpemF0aW9u
U3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSB7CitjbGFzcyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMs
IHByaXZhdGUgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlBsdWdp
blN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kgewogcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKIApAQCAtNDgsNyArNDcsNiBAQCBwcml2
YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6Q29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3koKTsKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJhdGVneSgpOwotICAg
IHZpcnR1YWwgV2ViQ29yZTo6TG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNyZWF0ZUxvY2FsaXphdGlv
blN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBj
cmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCk7CiAgICAgCiAgICAgLy8gV2ViQ29yZTo6Q29va2ll
c1N0cmF0ZWd5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKaW5kZXggOTJkMzdkYzY1MzYyYTk1NWU2
MWMwOWE1ZmIzNjFlY2ViNWZjZTNhMC4uNDdiMGUzNDI1YzdjNGI2NmNhNzg0N2Y4MmU3NThiNmMx
ZTIzMzIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9Q
bGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaApAQCAtMjYsNyArMjYsNiBAQAogI2Rl
ZmluZSBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRV9oCiAKICNpbmNsdWRlICJDb29raWVzU3RyYXRl
Z3kuaCIKLSNpbmNsdWRlICJMb2NhbGl6YXRpb25TdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBsdWdpblN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAi
VmlzaXRlZExpbmtTdHJhdGVneS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126646</attachid>
            <date>2012-02-11 14:33:37 -0800</date>
            <delta_ts>2012-02-11 16:48:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120211143336.patch</filename>
            <type>text/plain</type>
            <size>208400</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZkNWQyOTlmMTJhZWIx
NzFiNzI1NzhjNjVkZWZlZjBmMDM1MTdiZC4uNmNmNTQ0ODlkZDBhNTU5ZDFlM2IwZDg4Njg2OGU2
ZjM2YmZlZGM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2MiBAQAorMjAxMi0wMi0xMSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3Jk
ZXI6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9ybWF0TG9jYWxpemVkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRl
ZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OmlucHV0RWxlbWVu
dEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5v
RmlsZVNlbGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzayk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9v
a1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1t
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVW5kZXJsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ091
dGxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnU21hcnRRdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnU21hcnREYXNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU21h
cnRMaW5rcyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFj
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJD
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhMaXN0TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWEhlYWRpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0
RGVmaW5pdGlvblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklBQ29udGVudEdyb3VwVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEJ1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0
RmllbGRBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
Yik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhNZW51
TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6bWlzc2luZ1BsdWdpblRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1bmtub3duRmlsZVNp
emVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnVwbG9hZEZpbGVUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmFsbEZpbGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpidWlsdEluUERGUGx1Z2lu
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjprZXlnZW5NZW51SXRlbTUxMik6CisgICAgICAgIChXZWJDb3JlOjpr
ZXlnZW5NZW51SXRlbTEwMjQpOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW0yMDQ4
KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbktleWNoYWluSXRlbU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6aW1h
Z2VUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmls
ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdG
b3JNdWx0aXBsZUZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3RyYXRlZ2llczo6UGxhdGZvcm1TdHJhdGVnaWVzKToKKyAgICAgICAgKFBs
YXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmlu
Z3NFZmwuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0
LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aW5wdXRFbGVtZW50
QWx0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bGVCdXR0b25DaG9vc2VGaWxlTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNo
b29zZU11bHRpcGxlRmlsZXNMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9G
aWxlU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1Nl
bGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUlu
TmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
SW1hZ2VUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVXJsVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0N1dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0lnbm9yZUdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZ1doaWxlVHlwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrR3JhbW1hcldpdGhTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdGb250TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdCb2xk
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVOb1JlY2VudFNl
YXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaXN0TWFya2VyVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEhlYWRp
bmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYUmFk
aW9CdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dEZpZWxkQWN0aW9u
VmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhNZW51TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhN
ZW51TGlzdFBvcHVwQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25W
ZXJiKToKKyAgICAgICAgKFdlYkNvcmU6Om1pc3NpbmdQbHVnaW5UZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om11bHRpcGxlRmls
ZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93bkZpbGVTaXplVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxl
bWVudExvYWRpbmdTdGF0ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TGl2
ZUJyb2FkY2FzdFN0YXRlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1p
c21hdGNoVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1Rl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KToKKwogMjAxMi0wMi0xMSAgQW5kcmVhcyBLbGluZyAgPGF3ZXNvbWVrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQXR0cmlidXRlIHN0eWxlcyBzaG91bGQgYmUgY3JlYXRlZCBsYXppbHkuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCmluZGV4IDE0OGEyNzM2OTgwZTJiMjg5ZWY1YjBhMjg0NTdlMGY5ZWNmYThmMWUu
Ljk1NjlmZGFhMmY0ZWM5ZWVjNDUwNjA4N2EzZmExZjRkZTAwZjY1NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTEgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2FsaXphdGlvblN0cmF0
ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0Lmg6CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdCk6CisKIDIwMTItMDItMDkgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IGNvbXBpbGF0aW9uIHdpdGggbmV3ZXIgUXQ1CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCmluZGV4IDZkMmE3ZTY0N2IyZTBhZTA5YjdmNzZjYzA2NzI2Nzg1OTNm
OTIxMzEuLmZiOGY4Y2IxMWNiZDFkYTMzM2FjNjUzYjI2YjE3NjE5M2NjNWZhNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMTEgIEJlbmphbWluIFBvdWxh
aW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2Fs
aXphdGlvblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaDoKKwogMjAx
MS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgUGxh
dGZvcm1FdmVudCBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4NDQ4
YjNhYzk2NjgyYWU1Y2RjYmFiYzMwNTM0NDNmZDY3MGRhZWIwLi4wMzc3N2YyZTYwM2M4NThhZDA2
M2E0NGUyZWIzNzU1MWU0OGRmY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTI4MTksOCArMjgxOSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ3Vyc29yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25l
bnRzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaCBcCi0J
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRHJhZ0RhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0lt
YWdlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAxNDNmNzhjZWQ3MGNhZjllNTVhZjIxYjBmYzI1Mjc3
MzUxNzUwOTI0Li4xNTU5YjkwOTVlOGEwMjA5MmMzZDBmNDNlNGQ0OWJmN2Q1NGYzODVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTEwMzUsNyArMTAzNSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3Jt
L0NvbnRlbnRUeXBlLmNwcCBcCiAgICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIFwK
ICAgICBwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgXAotICAgIHBsYXRmb3JtL0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneS5jcHAgXAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcCBcCiAg
ICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3Bw
IFwKQEAgLTIwOTAsNyArMjA4OSw2IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL0NvbnRl
eHRNZW51LmggXAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmggXAogICAgIHBsYXRm
b3JtL0RhdGVDb21wb25lbnRzLmggXAotICAgIHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneS5oIFwKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5oIFwKICAgICBwbGF0Zm9ybS9EcmFn
SW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCkBAIC0yODM1LDYgKzI4MzMs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCBcCiAgICAgcGxh
dGZvcm0vcXQvTG9nZ2luZ1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvTGFuZ3VhZ2VRdC5jcHAg
XAorICAgIHBsYXRmb3JtL3F0L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAgXAogICAgIHBsYXRmb3Jt
L3F0L1RlbXBvcmFyeUxpbmtTdHVic1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0
Qm91bmRhcmllc1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVUXQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzQ5OGRmZGVjYTQ4
YmYwMmY2ZWFkZjQ3NzQ3Mzc1ZjYyZDFkNjYwMi4uOTA0NmY4ZGNmNDAxOWMxOTEzMmMwZGY2YWZk
ZTg5YWU4NDIwYzkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU0OCw3ICs1NDgsNiBAQCBf
X1pON1dlYkNvcmUxN1JlZ3VsYXJFeHByZXNzaW9uRDFFdgogX19aTjdXZWJDb3JlMTdjYWNoZURP
TVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTjNKU0M5U3RydWN0dXJlRVBLTlMy
XzlDbGFzc0luZm9FCiBfX1pON1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVJLTjNXVEY2U3Ry
aW5nRVJpCiBfX1pON1dlYkNvcmUxOEhUTUxDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1
bWVudEUKLV9fWk43V2ViQ29yZTE4UGxhdGZvcm1TdHJhdGVnaWVzMjZjcmVhdGVMb2NhbGl6YXRp
b25TdHJhdGVneUV2CiBfX1pON1dlYkNvcmUxOFNlYXJjaFBvcHVwTWVudU1hY0MxRVBOU18xNVBv
cHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVW
aXNpYmxlUG9zaXRpb25FTlNfMjdFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGVFCiBfX1pON1dl
YkNvcmUxOHBsdWdpblNjcmlwdE9iamVjdEVQTjNKU0M5RXhlY1N0YXRlRVBOU18xM0pTSFRNTEVs
ZW1lbnRFCkBAIC0xNDc3LDcgKzE0NzYsNiBAQCBfX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0
RWxlbWVudEJ5SWRFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aVFZON1dlYkNvcmUxMkNocm9t
ZUNsaWVudEUKIF9fWlRWTjdXZWJDb3JlMTZJY29uRGF0YWJhc2VCYXNlRQogX19aVFZON1dlYkNv
cmUxN0ZyYW1lTG9hZGVyQ2xpZW50RQotX19aVFZON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2ll
c0UKIF9fWlRWTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQogX19aVFZON1dl
YkNvcmUyOEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw4U2V0dGluZ3NFCiBfZmlsZW5hbWVC
eUZpeGluZ0lsbGVnYWxDaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTA4ZjBlY2E2YTFh
NWIyYzg5MTU5MjEyZDI0MGEwOWZhOThkNDMwYy4uYjkyM2E0NWI1N2UyMTJlYWQxYjUzODU1N2I4
NTgwMWFlZWQ3ZWQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjUxLDcgKzI1MSw2IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0N1cnNvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oJywK
LSAgICAgICAgICAgICdwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
RHJhZ0ltYWdlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgnLApAQCAt
MjY3LDcgKzI2Niw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vTGVuZ3RoQm94LmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0xlbmd0aFNpemUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
TGlua0hhc2guaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3ku
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Mb2dnaW5nLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL01lbW9yeVBy
ZXNzdXJlSGFuZGxlci5oJywKQEAgLTI3MzIsNyArMjczMCw2IEBACiAgICAgICAgICAgICAncGxh
dGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Vyc29y
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwJywKLSAgICAg
ICAgICAgICdwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9EcmFnRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Ry
YWdJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0V2ZW50TG9vcC5oJywKQEAgLTI3
NTYsNyArMjc1Myw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vTGFuZ3VhZ2UuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9MZW5ndGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9M
aW5rSGFzaC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2dnaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
TUlNRVR5cGVSZWdpc3RyeS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggOTlhYzRkMmQ5Y2M2
N2E1YmFhOGQzMjM0ZDk4ZTk2YzRjMzRkN2M0Ny4uZDViZTM5ZjQ1ODdmNWZkY2ZlNDVlM2ZmODFl
Y2E0ZmY4YWNiNjA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC01MzI5LDkgKzUzMjksNiBAQCBf
X1pOSzdXZWJDb3JlMTlBY2Nlc3NpYmlsaXR5T2JqZWN0MTVpc01lZGlhVGltZWxpbmVFdgogLVtB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciByb2xlRGVzY3JpcHRpb25dCiBfX1pON1dlYkNvcmUx
M0FYSGVhZGluZ1RleHRFdgogX19aTjdXZWJDb3JlMjFoYXNQbGF0Zm9ybVN0cmF0ZWdpZXNFdgot
X19aTjdXZWJDb3JlMThQbGF0Zm9ybVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0
ZWd5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5QzFFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYSGVhZGluZ1RleHRFdgog
X19aTks3V2ViQ29yZTI1QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDRzaXplRXYKIF9fWk5LN1dl
YkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxMWVsZW1lbnRSZWN0RXYKIF9fWk5LN1dl
YkNvcmUxOUFjY2Vzc2liaWxpdHlPYmplY3QxM2lzUmFkaW9CdXR0b25FdgpAQCAtNjY4MCw3ICs2
Njc3LDYgQEAgX19aTks3V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIyNWlzTG9hZGluZ011bHRpcGFy
dENvbnRlbnRFdgogX19aTks3V2ViQ29yZTRLVVJMMTdsYXN0UGF0aENvbXBvbmVudEV2CiBfX1pO
N1dlYkNvcmUyNGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0VSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTEwaW1hZ2VUaXRsZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxMGltYWdlVGl0bGVFUktOM1dURjZT
dHJpbmdFUktOU183SW50U2l6ZUUKIF9fWk43V2ViQ29yZUwyMWZvcm1hdExvY2FsaXplZFN0cmlu
Z0VOM1dURjZTdHJpbmdFegogX19aTjdXZWJDb3JlOERvY3VtZW50OHNldFRpdGxlRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgpAQCAtNjczMCw3ICs2NzI2LDYg
QEAgX19aTjdXZWJDb3JlMTZKU0hUTUxQcmVFbGVtZW50MTVjcmVhdGVQcm90b3R5cGVFUE4zSlND
OUV4ZWNTdGF0ZUVQTlMxXzE0SlNHbG9iYWwKIF9fWk43V2ViQ29yZTE2SlNIVE1MUHJlRWxlbWVu
dEMxRVBOM0pTQzlTdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFTjNXVEYxMFBhc3NS
ZWZQdHJJTlNfMTRIVE1MUHJlRWxlbWVudEVFRQogX19aTjdXZWJDb3JlMTJjYWNoZVdyYXBwZXJJ
TlNfMTRIVE1MUHJlRWxlbWVudEVFRXZQTlNfMTVET01XcmFwcGVyV29ybGRFUFRfUE5TXzEySlNE
T01XcmFwcGVyRQogX19aTjdXZWJDb3JlMTNBWFdlYkFyZWFUZXh0RXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MTNBWFdlYkFyZWFUZXh0RXYKIF9fWk43V2ViQ29y
ZTEwUmVuZGVyVmlldzEzYWJzb2x1dGVRdWFkc0VSTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRF
TG0wRUVFCiBfX1pON1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxNmdldERvY3Vt
ZW50TGlua3NFUk4zV1RGNlZlY3RvcklOUzFfNlJlZlB0cklOU18xOUFjY2Vzc2liaWxpdHlPYmpl
Y3RFRUVMbTBFRUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDVsaW5rc0V2CkBAIC02NzQwLDcgKzY3
MzUsNiBAQCBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MTFsYXlvdXRD
b3VudEV2CiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MjRlc3RpbWF0
ZWRMb2FkaW5nUHJvZ3Jlc3NFdgogX19aTks3V2ViQ29yZTE1UHJvZ3Jlc3NUcmFja2VyMTdlc3Rp
bWF0ZWRQcm9ncmVzc0V2CiBfX1pON1dlYkNvcmUxMEFYTGlua1RleHRFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxMEFYTGlua1RleHRFdgogX19aTjdXZWJDb3Jl
MTJSZW5kZXJJbmxpbmUyNWN1bGxlZElubGluZUFic29sdXRlUmVjdHNFUEtTMF9STjNXVEY2VmVj
dG9ySU5TXzdJbnRSZWN0RUxtMEVFRVJLTlNfN0ludFNpemVFCiBfX1pOSzdXZWJDb3JlMjVBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0MTlpbnRlcm5hbExpbmtFbGVtZW50RXYKIF9fWk5LN1dlYkNv
cmUxN0hUTUxBbmNob3JFbGVtZW50NGhyZWZFdgpAQCAtNjg5MSw5ICs2ODg1LDcgQEAgX19aTks3
V2ViQ29yZTEzSFRNTEhSRWxlbWVudDIzY2FuQ29udGFpblJhbmdlRW5kUG9pbnRFdgogX19aTks3
V2ViQ29yZTE3QWNjZXNzaWJpbGl0eUxpc3QxM2lzT3JkZXJlZExpc3RFdgogX19aTks3V2ViQ29y
ZTE3QWNjZXNzaWJpbGl0eUxpc3QxNmlzRGVmaW5pdGlvbkxpc3RFdgogX19aTjdXZWJDb3JlMjRB
WERlZmluaXRpb25MaXN0VGVybVRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kyNEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dEV2CiBfX1pON1dlYkNvcmUzMEFY
RGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTMwQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKIF9fWk43
V2ViQ29yZTE5SFRNTEZpZWxkU2V0RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTE3SFRNTExlZ2Vu
ZEVsZW1lbnREMEV2CiBfX1pON1dlYkNvcmVMMTZ2aWRlb0NvbnN0cnVjdG9yRVJLTlNfMTNRdWFs
aWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RWIKQEAgLTcxODIs
NyArNzE3NCw2IEBAIF9fWlRobjEyMF9ON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQzMG1lZGlh
UGxheWVyTmV0d29ya1N0YXRlQ2hhbmdlZEVQTlNfMTFNZWRpCiBfX1pON1dlYkNvcmUxMU1lZGlh
UGxheWVyMTJuZXR3b3JrU3RhdGVFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTVz
ZXROZXR3b3JrU3RhdGVFTlNfMTFNZWRpYVBsYXllcjEyTmV0d29ya1N0YXRlRQogX19aTjdXZWJD
b3JlMjhtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MjhtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKIF9f
Wk43V2ViQ29yZTM0TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzE5Y3JlYXRlQVZB
c3NldEZvclVSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTMwTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uMTdzZXREZWxheUNhbGxiYWNrc0ViCiBfX1pMMzhpbml0QVZVUkxBc3Nl
dFJlZmVyZW5jZVJlc3RyaWN0aW9uc0tleXYKQEAgLTc0MTcsNyArNzQwOCw2IEBAIF9fWk5LN1dl
YkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOXJvbGVWYWx1ZUV2CiBf
X1pOSzdXZWJDb3JlMzVBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjI0YWNjZXNz
aWJpbGl0eURlc2NyaXB0aW9uRXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzQ29udGFpbmVyMTVlbGVtZW50VHlwZU5hbWVFdgogX19aTjdXZWJDb3JlMzRsb2NhbGl6
ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1l
bnRTdHJpbmdFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUR5bmFtaWNOb2RlTGlzdDE1
aW52YWxpZGF0ZUNhY2hlRXYKIF9fWk5LN1dlYkNvcmUyNE1lZGlhQ29udHJvbElucHV0RWxlbWVu
dDIxaXNNZWRpYUNvbnRyb2xFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlN
ZWRpYUNvbnRyb2wyMmFjY2Vzc2liaWxpdHlJc0lnbm9yZWRFdgpAQCAtNzU1NCwxNCArNzU0NCwx
MiBAQCBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTRzdHlsZURpZENoYW5n
ZUVOU18xNVN0eWxlRGlmZmVyZW5jZUVQS05TXwogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDE3dXBkYXRlRnJvbUVsZW1lbnRFdgogX19aTjdXZWJDb3JlMThTaGFkb3dJbnB1
dEVsZW1lbnQ2Y3JlYXRlRVBOU18xMUhUTUxFbGVtZW50RQogX19aTjdXZWJDb3JlMjVmaWxlQnV0
dG9uQ2hvb3NlRmlsZUxhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MjVmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsRXYKIF9fWk43V2ViQ29yZTlJbnB1dFR5
cGUxMnZhbHVlQ2hhbmdlZEV2CiBfX1pON1dlYkNvcmUyMkhUTUxGb3JtQ29udHJvbEVsZW1lbnQx
MXNldERpc2FibGVkRWIKIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wyOWNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzRXYKIF9fWk5LN1dlYkNvcmUxM0ZpbGVJbnB1dFR5
cGUxMmlzRmlsZVVwbG9hZEV2CiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9s
MTFwYWludE9iamVjdEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjlmaWxlQnV0dG9u
Tm9GaWxlU2VsZWN0ZWRMYWJlbEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTI5ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk43V2ViQ29yZTExUmVu
ZGVyQmxvY2sxM2Fic29sdXRlUmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFRUVp
aQogX19aVGhuOF9ON1dlYkNvcmUxOUhUTUxUZXh0QXJlYUVsZW1lbnREMEV2CkBAIC03ODE3LDEw
ICs3ODA1LDcgQEAgX19aTjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043
V2ViQ29yZTIxRWRpdG9ySW50ZXJuYWxDb21tYW5kRUVOU18KIF9fWk4zV1RGOUhhc2hUYWJsZUlO
U182U3RyaW5nRVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVF
TlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2bG9va3Vw
SVMxX05TXzIySWRlbnRpdHlIYXNoVHJhbnNsYXRvcklTMV9TN19TQV9FRUVFUFM3X1JLVF8KIF9f
Wk4zV1RGOUhhc2hUYWJsZUlOU182U3RyaW5nRVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRv
ckludGVybmFsQ29tbWFuZEVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VG
b2xkaW5nSGFzaEVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19J
UzZfRUVFRVNEX0U2cmVoYXNoRWkKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hv
d1N1YnN0aXR1dGlvbnNFYgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k2c2hhcmVkRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVj
b250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uc0ViCiBfX1pON1dlYkNvcmUzNWNvbnRl
eHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsRWIKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MzVjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbEVi
CiBfX1pON1dlYkNvcmVMMjJjZW50ZXJUcnVuY2F0ZVRvQnVmZmVyRVJLTjNXVEY2U3RyaW5nRWpq
UHQKIF9fWk43V2ViQ29yZTExaXNUZXh0QnJlYWtFUE5TXzE3VGV4dEJyZWFrSXRlcmF0b3JFaQog
X19aTjdXZWJDb3JlMTVTUUxpdGVTdGF0ZW1lbnQ4YmluZE51bGxFaQpAQCAtMTE5NTAsNyArMTE5
MzUsNiBAQCBfX1pON1dlYkNvcmUyMmpzSFRNTENvbGxlY3Rpb25MZW5ndGhFUE4zSlNDOUV4ZWNT
dGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudAogX19aTks3V2ViQ29yZTE3SFRNTE9iamVj
dEVsZW1lbnQxOGNvbnRhaW5zSmF2YUFwcGxldEV2CiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVk
ZGVkT2JqZWN0MzBzZXRTaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3Jl
MTdtaXNzaW5nUGx1Z2luVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTE3bWlzc2luZ1BsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRl
ZE9iamVjdDEzcGFpbnRSZXBsYWNlZEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjBS
ZW5kZXJFbWJlZGRlZE9iamVjdDI2Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnlFaWlSTlNfOUZs
b2F0UmVjdEVSTlNfNFBhdGhFUzJfUk5TXzRGb250RVJOU183VGV4dFJ1bkVSZgogX19aTjdXZWJD
b3JlNFBhdGgxNGFkZFJvdW5kZWRSZWN0RVJLTlNfOUZsb2F0UmVjdEVSS05TXzlGbG9hdFNpemVF
CkBAIC0xMjM3MCw3ICsxMjM1NCw2IEBAIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxOWFsdEF0dHJp
YnV0ZUNoYW5nZWRFdgogX19aTjNXVEY2U3RyaW5nMTBtYWtlU2VjdXJlRXQKIF9fWk43V2ViQ29y
ZTlJbnB1dFR5cGUyN3Nob3VsZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZUV2CiBfX1pON1dlYkNvcmUx
OWlucHV0RWxlbWVudEFsdFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kxOWlucHV0RWxlbWVudEFsdFRleHRFdgogX19aTks3V2ViQ29yZTE3UmVuZGVyVGV4
dENvbnRyb2wzNnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbkV2CiBfX1pON1dl
YkNvcmUzMGpzSFRNTElucHV0RWxlbWVudERlZmF1bHRWYWx1ZUVQTjNKU0M5RXhlY1N0YXRlRU5T
MF83SlNWYWx1ZUVSS05TMF8xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzMmpzSFRNTElucHV0
RWxlbWVudERlZmF1bHRDaGVja2VkRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMw
XzEwSWRlbnRpZmllckUKQEAgLTE1MDg2LDExICsxNTA2OSw4IEBAIF9fWk43V2ViQ29yZTE3SFRN
TEtleWdlbkVsZW1lbnQ2Y3JlYXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRF
UE5TXzE1CiBfX1pON1dlYkNvcmUxN0hUTUxLZXlnZW5FbGVtZW50QzJFUktOU18xM1F1YWxpZmll
ZE5hbWVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pON1dlYkNvcmUy
MGdldFN1cHBvcnRlZEtleVNpemVzRVJOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0wRUVFCiBf
X1pON1dlYkNvcmUxOGtleWdlbk1lbnVJdGVtMjA0OEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKIF9fWk43V2ViQ29yZTE4
a2V5Z2VuTWVudUl0ZW0xMDI0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MThrZXlnZW5NZW51SXRlbTEwMjRFdgogX19aTjdXZWJDb3JlMTdrZXlnZW5NZW51SXRl
bTUxMkV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3a2V5Z2Vu
TWVudUl0ZW01MTJFdgogX19aTjdXZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudEMyRVJLTlNfMTNR
dWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdX
ZWJDb3JlMTdIVE1MT3B0aW9uRWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1M
Rm9ybUVsZW1lbnRFCiBfX1pON1dlYkNvcmUxM1NlbGVjdEVsZW1lbnQxM2Rlc2VsZWN0SXRlbXNF
Uk5TXzE3U2VsZWN0RWxlbWVudERhdGFFUE5TXzdFbGVtZW50RVM0XwpAQCAtMTU1NzEsNjAgKzE1
NTUxLDM0IEBAIF9fWk43V2ViQ29yZTExQ29udGV4dE1lbnVDMUV2CiBfX1pON1dlYkNvcmUxMUNv
bnRleHRNZW51QzJFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXI4cG9wdWxh
dGVFdgogX19aTjdXZWJDb3JlMjZjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0V2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI2Y29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmtFdgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1DMUVOU18xOUNvbnRleHRNZW51
SXRlbVR5cGVFTlNfMTdDb250ZXh0TWVudUFjdGlvbkVSS04zV1RGNlN0cmluZ0VQTlNfMTFDb250
ZXh0TWVudUUKIF9fWk43V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtQzJFTlNfMTlDb250ZXh0TWVu
dUl0ZW1UeXBlRU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFUE5TXzExQ29u
dGV4dE1lbnVFCiBfX1pON1dlYkNvcmVMMzNjcmVhdGVQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRp
b25FTlNfMTlDb250ZXh0TWVudUl0ZW1UeXBlRU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dU
RjZTdHJpbmdFYmIKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5l
d1dpbmRvd0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29u
dGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzNmNvbnRl
eHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNr
RXYKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZEV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJ
dGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRl
bVRhZ09wZW5JbWFnZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvd0V2CiBf
X1pON1dlYkNvcmUzN2NvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2tFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRh
Z0Rvd25sb2FkSW1hZ2VUb0Rpc2tFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdD
b3B5SW1hZ2VUb0NsaXBib2FyZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTM4Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmRFdgogX19aTjdX
ZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2CiBf
X1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZUV2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRl
RXYKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sc0V2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhTG9vcEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTMzY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKIF9fWk43V2ViQ29y
ZTM4Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlk
ZW9GdWxsc2NyZWVuRXYKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5T
cG90bGlnaHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNv
bnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoV2ViRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Mjdjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgogX19aTjdXZWJDb3JlMjJj
b250ZXh0TWVudUl0ZW1UYWdDb3B5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjJjb250ZXh0TWVudUl0ZW1UYWdDb3B5RXYKIF9fWk43V2ViQ29yZTI0Y29udGV4
dE1lbnVJdGVtVGFnR29CYWNrRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MjRjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2tFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0
TWVudUl0ZW1UYWdHb0ZvcndhcmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZEV2CiBfX1pON1dlYkNvcmUyMmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kyMmNvbnRleHRNZW51SXRlbVRhZ1N0b3BFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0
TWVudUl0ZW1UYWdSZWxvYWRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyNGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRv
d0V2CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1U
YWdOb0d1ZXNzZXNGb3VuZEV2CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9y
ZVNwZWxsaW5nRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJj
b250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmUzMWNvbnRleHRN
ZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmdFdgogX19aTjdXZWJD
b3JlMzFjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFy
RXYKIF9fWk43V2ViQ29yZTIxY29udGV4dE1lbnVJdGVtVGFnQ3V0RXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjFjb250ZXh0TWVudUl0ZW1UYWdDdXRFdgogX19a
TjdXZWJDb3JlMjNjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTIzY29udGV4dE1lbnVJdGVtVGFnUGFzdGVFdgogX19aTks3
V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDE3aXNDb250ZW50RWRpdGFibGVFdgogX19aTks3V2ViQ29y
ZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMjFjaGVja09yRW5hYmxlSWZOZWVkZWRFUk5TXzE1Q29u
dGV4dE1lbnVJdGVtRQogX19aTks3V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtNHR5cGVFdgpAQCAt
MTU2MzgsNyArMTU1OTIsNiBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTJtZWRpYUVs
ZW1lbnRFdgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUy
MUNvbnRleHRNZW51Q29udHJvbGxlcjIxYWRkSW5zcGVjdEVsZW1lbnRJdGVtRXYKIF9fWk43V2Vi
Q29yZTMyY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnRFdgotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVt
ZW50RXYKIF9fWk5LN1dlYkNvcmUxMUNvbnRleHRNZW51MTlwbGF0Zm9ybURlc2NyaXB0aW9uRXYK
IF9fWk43V2ViQ29yZTExQ29udGV4dE1lbnUyMnNldFBsYXRmb3JtRGVzY3JpcHRpb25FUDE0TlNN
dXRhYmxlQXJyYXkKIF9fWk43V2ViQ29yZThEb2N1bWVudDIzYWN0aXZlQ2hhaW5Ob2RlRGV0YWNo
ZWRFUE5TXzROb2RlRQpAQCAtMTYyMTAsMTYgKzE2MTYzLDExIEBAIF9fWk5LN1dlYkNvcmUxOFRl
eHRDaGVja2luZ0hlbHBlcjQwZ3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5n
ZUViUmJTCiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTRyZXBsYWNlZFN0cmluZ0V2CiBf
X1pON1dlYkNvcmVMMjlzZWxlY3Rpb25Db250YWluc1Bvc3NpYmxlV29yZEVQTlNfNUZyYW1lRQog
X19aTjdXZWJDb3JlMzBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnVFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxs
aW5nTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjQwY3JlYXRlQW5k
QXBwZW5kU3BlbGxpbmdBbmRHcmFtbWFyU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBf
X1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmdFdgogX19aTjdXZWJDb3JlNDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
V2hpbGVUeXBpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k0
MmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2CiBfX1pON1dlYkNv
cmU0MmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0V2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hl
Y2tHcmFtbWFyV2l0aFNwZWxsaW5nRXYKIF9fWk43V2ViQ29yZTQ2Y29udGV4dE1lbnVJdGVtVGFn
Q29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTQ2Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21h
dGljYWxseUV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMjJzcGVsbGluZ1BhbmVsSXNTaG93aW5nRXYK
IF9fWk43V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtOHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlNkVkaXRvcjI0aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkRXYKQEAgLTE2MjI3
LDY2ICsxNjE3NSw0MSBAQCBfX1pON1dlYkNvcmU2RWRpdG9yMzZpc0F1dG9tYXRpY1NwZWxsaW5n
Q29ycmVjdGlvbkVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW0xMHNldFN1
Yk1lbnVFUE5TXzExQ29udGV4dE1lbnVFCiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51RDFFdgog
X19aTjdXZWJDb3JlMzVjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFn
U3Vic3RpdHV0aW9uc01lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIz
NWNyZWF0ZUFuZEFwcGVuZFN1YnN0aXR1dGlvbnNTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRl
bUUKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRh
Z1NtYXJ0Q29weVBhc3RlRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRR
dW90ZXNFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRl
eHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVt
VGFnU21hcnREYXNoZXNFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kyOWNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUz
M2NvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50
RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IyN3N1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZ0V2CiBf
X1pON1dlYkNvcmU2RWRpdG9yMzVpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZEV2
CiBfX1pON1dlYkNvcmU2RWRpdG9yMzRpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVk
RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzMWlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRF
dgogX19aTjdXZWJDb3JlNkVkaXRvcjMzaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVk
RXYKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudUV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJ
dGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29u
dHJvbGxlcjM3Y3JlYXRlQW5kQXBwZW5kVHJhbnNmb3JtYXRpb25zU3ViTWVudUVSTlNfMTVDb250
ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNh
c2VFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRN
ZW51SXRlbVRhZ01ha2VVcHBlckNhc2VFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1U
YWdNYWtlTG93ZXJDYXNlRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlRXYKIF9fWk43V2ViQ29yZTI4Y29u
dGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTI4Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZUV2CiBfX1pON1dlYkNv
cmUyNmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MjZjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudUV2CiBfX1pON1dl
YkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjI2Y3JlYXRlQW5kQXBwZW5kRm9udFN1Yk1lbnVF
Uk5TXzE1Q29udGV4dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdT
aG93Rm9udHNFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2Nv
bnRleHRNZW51SXRlbVRhZ1Nob3dGb250c0V2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRl
bVRhZ0JvbGRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNv
bnRleHRNZW51SXRlbVRhZ0JvbGRFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJ
dGFsaWNFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRl
eHRNZW51SXRlbVRhZ0l0YWxpY0V2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ1Vu
ZGVybGluZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29u
dGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lRXYKIF9fWk43V2ViQ29yZTI1Y29udGV4dE1lbnVJdGVt
VGFnT3V0bGluZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI1
Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZUV2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRl
bVRhZ1N0eWxlc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0
Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVt
VGFnU2hvd0NvbG9yc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTI4Y29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9yc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRN
ZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kyOGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgogX19aTjdXZWJDb3JlMjFD
b250ZXh0TWVudUNvbnRyb2xsZXIyOGNyZWF0ZUFuZEFwcGVuZFNwZWVjaFN1Yk1lbnVFUk5TXzE1
Q29udGV4dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNw
ZWFraW5nRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250
ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwY29udGV4dE1lbnVJ
dGVtVGFnU3RvcFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzRVJLTjNXVEY2VmVjdG9ySU5TMF82U3RyaW5nRUxtMEVFRQotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVh
a2luZ0V2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25N
ZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRN
ZW51Q29udHJvbGxlcjM4Y3JlYXRlQW5kQXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnVFUk5T
XzE1Q29udGV4dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMzRjb250ZXh0TWVudUl0ZW1UYWdEZWZh
dWx0RGlyZWN0aW9uRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MzRjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uRXYKIF9fWk43V2ViQ29yZTI5Y29u
dGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2Vi
Q29yZTI5Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnRFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0RXYK
IF9fWk5LN1dlYkNvcmU2RWRpdG9yMTZoYXNCaWRpU2VsZWN0aW9uRXYKIF9fWk5LN1dlYkNvcmUx
M0tleWJvYXJkRXZlbnQ4Y2hhckNvZGVFdgogX19aTjdXZWJDb3JlMThqc0RPTVNlbGVjdGlvblR5
cGVFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAt
MTYyOTUsNyArMTYyMTgsNiBAQCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJCbG9jazI0Y29udGFpbnNO
b25aZXJvQmlkaUxldmVsRXYKIF9fWk5LN1dlYkNvcmUxOUFwcGx5UHJvcGVydHlMZW5ndGhJTE5T
XzEwTGVuZ3RoQXV0b0UxRUxOU18xNUxlbmd0aEludHJpbnNpY0UxRUxOU18xOExlbmd0aE1pbklu
dHJpbnNpY0UxRUxOU18xMExlbmd0aE5vbmVFMUVMTlNfMTVMZW5ndGhVbmRlZmluZWRFMUVFMTBh
cHBseVZhbHVlRVBOU18xNkNTU1N0eWxlU2VsZWN0b3JFUE5TXzhDU1NWYWx1ZUUKIF9fWk43V2Vi
Q29yZTExUmVuZGVyU3R5bGUxMXNldE1heFdpZHRoRU5TXzZMZW5ndGhFCiBfX1pON1dlYkNvcmUz
NmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1U
YWdMb29rVXBJbkRpY3Rpb25hcnlFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTlJbnNw
ZWN0b3JDb250cm9sbGVyMjZoYXNJbnNwZWN0b3JGcm9udGVuZENsaWVudEV2CiBfX1pOSzdXZWJD
b3JlMjFCYWNrRm9yd2FyZENvbnRyb2xsZXIxOGNhbkdvQmFja09yRm9yd2FyZEVpCiBfX1pOSzdX
ZWJDb3JlNFBhZ2UxOGNhbkdvQmFja09yRm9yd2FyZEVpCkBAIC0xNzA2Myw3ICsxNjk4NSw2IEBA
IF9fWk43V2ViQ29yZTE0U1ZHU01JTEVsZW1lbnQyMGRpc2Nvbm5lY3RDb25kaXRpb25zRXYKIF9f
Wk43V2ViQ29yZTE3U01JTFRpbWVDb250YWluZXIxMHVuc2NoZWR1bGVFUE5TXzE0U1ZHU01JTEVs
ZW1lbnRFCiBfX1pOSzdXZWJDb3JlMTdSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gxMHJlbmRl
ck5hbWVFdgogX19aTjdXZWJDb3JlMjdzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb25FdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN3NlYXJjaGFibGVJbmRleElu
dHJvZHVjdGlvbkV2CiBfX1pON1dlYkNvcmUxNFJlbmRlclJ1YnlUZXh0QzFFUE5TXzROb2RlRQog
X19aTks3V2ViQ29yZTEzUmVuZGVyUnVieVJ1bjExaGFzUnVieVRleHRFdgogX19aTks3V2ViQ29y
ZTE0UmVuZGVyUnVieVRleHQxMGlzUnVieVRleHRFdgpAQCAtMTg5NjksNyArMTg4OTAsNiBAQCBf
X1pON1dlYkNvcmU4TG9jYXRpb243c2V0SHJlZkVSS04zV1RGNlN0cmluZ0VQTlNfOURPTVdpbmRv
d0VTNl8KIF9fWk43V2ViQ29yZTE3U3R5bGVQZW5kaW5nSW1hZ2UxMnJlbW92ZUNsaWVudEVQTlNf
MTJSZW5kZXJPYmplY3RFCiBfX1pON1dlYkNvcmUxNVN1Ym1pdElucHV0VHlwZTEyZGVmYXVsdFZh
bHVlRXYKIF9fWk43V2ViQ29yZTI0c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRzdWJtaXRCdXR0b25EZWZhdWx0TGFi
ZWxFdgogX19aTks3V2ViQ29yZTExUmVuZGVyVGFibGUyMGZpcnN0TGluZUJveEJhc2VsaW5lRXYK
IF9fWk5LN1dlYkNvcmUxOFJlbmRlclRhYmxlU2VjdGlvbjIwZmlyc3RMaW5lQm94QmFzZWxpbmVF
dgogX19aTks3V2ViQ29yZTE1UmVuZGVyV29yZEJyZWFrMTByZW5kZXJOYW1lRXYKQEAgLTE5NDU1
LDcgKzE5Mzc1LDYgQEAgX19aTjdXZWJDb3JlTDIyVG9wR3JhZGllbnRJbnRlcnBvbGF0ZUVQdlBL
ZFBkCiBfX1pON1dlYkNvcmVMMjVCb3R0b21HcmFkaWVudEludGVycG9sYXRlRVB2UEtkUGQKIF9f
Wk43V2ViQ29yZTE0UmVzZXRJbnB1dFR5cGUxMmRlZmF1bHRWYWx1ZUV2CiBfX1pON1dlYkNvcmUy
M3Jlc2V0QnV0dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5MjNyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbEV2CiBfX1pON1dlYkNvcmUxMlVS
TElucHV0VHlwZTZjcmVhdGVFUE5TXzE2SFRNTElucHV0RWxlbWVudEUKIF9fWk5LN1dlYkNvcmUx
MlVSTElucHV0VHlwZTE1Zm9ybUNvbnRyb2xUeXBlRXYKIF9fWk43V2ViQ29yZTE0SW5wdXRUeXBl
TmFtZXMzdXJsRXYKQEAgLTI1MjIxLDcgKzI1MTQwLDYgQEAgX19aTjdXZWJDb3JlMTNKU0V2ZW50
U291cmNlRDFFdgogX19aTjdXZWJDb3JlMTFFdmVudFNvdXJjZUQwRXYKIF9fWk5LM0pTQzE0SlNH
bG9iYWxPYmplY3QxNGlzR2xvYmFsT2JqZWN0RXYKIF9fWk43V2ViQ29yZTIybXVsdGlwbGVGaWxl
VXBsb2FkVGV4dEVqCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIy
bXVsdGlwbGVGaWxlVXBsb2FkVGV4dEVqCiBfX1pON1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDIyY2FsY1ZlcnRpY2FsUHJlZldpZHRoc0V2CiBfX1pON1dlYkNvcmUxMVJlbmRl
clN0eWxlMTVzZXRCb3hGbGV4R3JvdXBFagogX19aTks3V2ViQ29yZTEzUmVuZGVyTGlzdEJveDEw
cmVuZGVyTmFtZUV2CkBAIC0yNTQ5OCw3ICsyNTQxNiw2IEBAIF9fWk43V2ViQ29yZTIySFRNTEZv
cm1Db250cm9sRWxlbWVudDMwdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlRXYKIF9fWk5L
N1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTks3V2Vi
Q29yZTlJbnB1dFR5cGUxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3JlMzN2YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pO
N1dlYkNvcmUxN1ZhbGlkYXRpb25NZXNzYWdlNmNyZWF0ZUVQTlNfMjFGb3JtQXNzb2NpYXRlZEVs
ZW1lbnRFCiBfX1pON1dlYkNvcmUxN1ZhbGlkYXRpb25NZXNzYWdlMTBzZXRNZXNzYWdlRVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNVRpbWVySU5TXzE3VmFsaWRhdGlvbk1lc3NhZ2VFRTVm
aXJlZEV2CkBAIC0yNTYwOCwxMSArMjU1MjUsOSBAQCBfX1pON1dlYkNvcmU0NHZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNFJhZGlv
SW5wdXRUeXBlMTZ2YWx1ZU1pc3NpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1l
c3NhZ2VWYWx1ZU1pc3NpbmdGb3JSYWRpb1RleHRFdgogX19aTjdXZWJDb3JlMzZ2YWxpZGF0aW9u
TWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzNnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2CiBf
X1pOSzdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk5L
N1dlYkNvcmUxNEVtYWlsSW5wdXRUeXBlMTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29y
ZTQxdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHRFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVHlwZU1p
c21hdGNoVGV4dEV2CiBfX1pON1dlYkNvcmUzOGpzSFRNTEZpZWxkU2V0RWxlbWVudFZhbGlkYXRp
b25NZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmll
ckUKIF9fWk43V2ViQ29yZTM2anNIVE1MS2V5Z2VuRWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBO
M0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2Vi
Q29yZTMzanNIVE1MRmllbGRTZXRFbGVtZW50V2lsbFZhbGlkYXRlRVBOM0pTQzlFeGVjU3RhdGVF
TlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKQEAgLTI4NjExLDcgKzI4NTI2LDYgQEAg
X19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjIyZmluZEZyYW1lRm9yTmF2aWdhdGlvbkVSS04zV1RG
MTJBdG9taWNTdHJpbmdFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIzdGhyb3dJ
bnZhbGlkQWNjZXNzRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pON1dlYkNvcmUyMFJlbmRlckVt
YmVkZGVkT2JqZWN0MzBzZXRTaG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJD
b3JlMTdjcmFzaGVkUGx1Z2luVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTE3Y3Jhc2hlZFBsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMTZTY3JpcHRDb250
cm9sbGVyMTFjcmVhdGVXb3JsZEV2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjBhZGRVc2VyU2Ny
aXB0VG9Xb3JsZEVQTlNfMTVET01XcmFwcGVyV29ybGRFUktOM1dURjZTdHJpbmdFUktOU180S1VS
TEVOUzNfMTBQYXNzT3duUHRySU5TM182VmVjdG9ySVM0X0xtMEVFRUVFU0RfTlNfMjNVc2VyU2Ny
aXB0SW5qZWN0aW9uVGltZUVOU18yNVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dl
YkNvcmUxMFVzZXJTY3JpcHRDMkVSS04zV1RGNlN0cmluZ0VSS05TXzRLVVJMRU5TMV8xMFBhc3NP
d25QdHJJTlMxXzZWZWN0b3JJUzJfTG0wRUVFRUVTQl9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25U
aW1lRU5TXzI1VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lc0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMGEzMTMxMmQ3NzA3YWNjY2UxNzY4MGRk
NjA4MzlkNmJjN2QwYzkyNi4uNzY0YzBkNzMzNjQ3ODVlYTVkNzE4ODhhZWUxYWE2MjExMThjNDg0
NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTI2NTQyLDE0ICsyNjU0Miw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAi
Ci0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxEcmFnRGF0YS5jcHAiCiAJCQkJ
PgogCQkJPC9GaWxlPgpAQCAtMjY2OTAsMTAgKzI2NjgyLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGxhdGZvcm1cTG9jYWxpemVkU3RyaW5ncy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGQ5MzZkMzgyOGVkN2IzMDE0MzI0ZTdlMWJkOGE1ZWYxYmY3NTQzYjcuLmU2NDIxYjg2ZDJiOTlh
NTY5MGFjNzczNTE1OWIyYjRhNDNjNjBmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxNDksNyArNTE0OSw2IEBACiAJCUJD
NUE4NkI2MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5
IC8qIEpTRE9NU2VsZWN0aW9uLmggKi87IH07CiAJCUJDNUM3NjJBMTQ5N0ZFMTQwMEJDNDc3NSAv
KiBQbGF0Zm9ybUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNUM3NjI4MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNwcCAq
LzsgfTsKIAkJQkM1Qzc2MkIxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI5MTQ5N0ZF
MTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2Fs
aXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3ku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzVF
QjVEQjBFODFCN0VBMDBCMjU5NjUgLyogQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBC
b3JkZXJWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUJDNUVCNUREMEU4MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURDMEU4MUI4REQw
MEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQzVFQjVERjBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNUVCNURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MzUzLDgg
KzUzNTIsNiBAQAogCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBG
M0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi87IH07CiAJCUJDQzA2NTg5MEYzQ0Uy
QTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCAqLzsgfTsKIAkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpT
Q2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87
IH07Ci0JCUJDQzM2RUI4MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNDMzZFQjYxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5j
cHAgKi87IH07Ci0JCUJDQzM2RUI5MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQzM2RUI3MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kuaCAqLzsgfTsKIAkJQkNDNDM4NzgwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxl
bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0M0Mzg3NzBFODg2Q0M3MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9t
LmNwcCAqLzsgfTsKIAkJQkNDNTczMzUwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3
MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUJDQzU3
MzM2MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3
IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi87IH07CkBAIC0xMjA1Niw3ICsxMjA1Myw2IEBACiAJ
CUJDNUE4NkI0MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01TZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkM1Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1FdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3
NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM1Q0ZDQTgxMUY3
OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExvY2FsaXphdGlvblN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5
bGUvQm9yZGVyVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REMw
RTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBPdXRsaW5lVmFsdWUuaDsgcGF0aCA9IHN0eWxlL091dGxpbmVWYWx1ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyog
Q29sbGFwc2VkQm9yZGVyVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
Q29sbGFwc2VkQm9yZGVyVmFsdWUuaDsgcGF0aCA9IHN0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjI4MSw4ICsxMjI3Nyw2IEBACiAJ
CUJDQzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDbGllbnRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJE
ODcgLyogSlNDbGllbnRSZWN0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NsaWVudFJlY3RMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzM2
RUI2MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMzZFQjcxMzQyQUEz
RjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRN
TElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Q
cm9ncmVzc0V2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RE9NUHJvZ3Jlc3NFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5Njkw
LDggKzE5Njg0LDYgQEAKIAkJCQlGNTg3ODY4NDAyREUzQjg2MDFFQTQxMjIgLyogQ3Vyc29yLmgg
Ki8sCiAJCQkJQTU3MzJCMDgxMzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCAq
LywKIAkJCQlBNTczMkIwOTEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLywK
LQkJCQlCQ0MzNkVCNjEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5LmNwcCAqLywKLQkJCQlCQ0MzNkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5LmggKi8sCiAJCQkJQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERy
YWdEYXRhLmNwcCAqLywKIAkJCQlBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEu
aCAqLywKIAkJCQlBN0NGQjNDRjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmNwcCAqLywK
QEAgLTE5NzI1LDcgKzE5NzE3LDYgQEAKIAkJCQlCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyog
TGVuZ3RoU2l6ZS5oICovLAogCQkJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFz
aC5jcHAgKi8sCiAJCQkJQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi8s
Ci0JCQkJQkM1Q0ZDQTgxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
Ki8sCiAJCQkJQzA0NkUxQUIxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3Bw
ICovLAogCQkJCTkzNTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmgg
Ki8sCiAJCQkJQTgyMzlERkUwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovLApAQCAt
MjE0MDAsNyArMjEzOTEsNiBAQAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJE
MDAzMTZEMDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJB
MDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkQzMTYwMkUxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9kZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yMzA4NSw3ICsyMzA3NSw2IEBACiAJCQkJMDZFODFFRDcwQUI1RDVF
OTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzYzM0E3MjYxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmls
ZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8q
IExvY2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTczMkIwRDEzNkEx
NkM0MDA1QzhEN0MgLyogTG9jYWxpemVkRGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxNDJD
NjkxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQ3OTgsNyArMjQ3ODcsNiBAQAogCQkJCTQxNjJBNDUwMTAxMTQ1QUUwMERG
RjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQx
QTNENThFMTAxQzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0MzNkVCODEzNDJBQTNGMDA0
QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQxNjdFQkY1MTAyOTYyQkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3Np
dG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAyQjEyQjAyNjc2MDBDMUEzNTkgLyog
RGVsYXlEU1BLZXJuZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkQxMkIwMjY3NjAw
QzFBMzU5IC8qIERlbGF5Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTNhNDg2MDQ5NDEyYWEwMTU0M2IyYzJkOGJjZDJi
NGY2ZGFjY2U0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw5NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIK
LQotI2lmIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgot
I2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUv
Q2hhcmFjdGVyTmFtZXMuaD4KLSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KLQotI2lmIFVT
RShDRikKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KE1BQykKLSNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jZW5kaWYKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi0vLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3
byByZWFzb25zOgotLy8gIDEpIEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJz
IGluIHRoZSBmb3JtYXQgc3RyaW5nLgotLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRk
IHN5bnRheC4KLS8vIE5vdGUgdGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNl
Y29uZCBwYXJhbWV0ZXIgdG8gdmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQotLy8g
dHlwZSBhY2NvcmRpbmcgdG8gc2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFy
ZC4KLXN0YXRpYyBTdHJpbmcgZm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4u
LikKLXsKLSNpZiBVU0UoQ0YpCi0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3RhcnQo
YXJndW1lbnRzLCBmb3JtYXQpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZT
dHJpbmcoQWRvcHRDRiwgZm9ybWF0LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFy
Z3VtZW50cygwLCAwLCBmb3JtYXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7Ci0gICAgdmFf
ZW5kKGFyZ3VtZW50cyk7Ci0gICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKLSNlbGlmIFBMQVRGT1JN
KFFUKQotICAgIHZhX2xpc3QgYXJndW1lbnRzOwotICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9y
bWF0KTsKLSAgICBRU3RyaW5nIHJlc3VsdDsKLSAgICByZXN1bHQudnNwcmludGYoZm9ybWF0Lmxh
dGluMSgpLmRhdGEoKSwgYXJndW1lbnRzKTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICBy
ZXR1cm4gcmVzdWx0OwotI2Vsc2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBm
b3JtYXQ7Ci0jZW5kaWYKLX0KLQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLXN0YXRpYyBTdHJpbmcgdHJ1bmNh
dGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKLXsKLSAg
ICBpZiAob3JpZ2luYWwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gb3JpZ2luYWw7Ci0gICAg
Ci0gICAgLy8gVHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGlu
IGNvbnNpc3RlbmN5IHdpdGggQXBwS2l0LgotICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhl
bWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0gPSAyNDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgZWxsaXBzaXMsICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7Ci0gICAgCi0gICAg
U3RyaW5nIHRyaW1tZWQgPSBvcmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICB1bnNpZ25l
ZCBudW1iZXJPZkNoYXJhY3RlcnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRy
aW1tZWQsIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOwotICAg
IHJldHVybiBudW1iZXJPZkNoYXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQg
OiB0cmltbWVkLmxlZnQobnVtYmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwotfQotI2VuZGlm
Ci0KLURlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneSYgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5OjpzaGFyZWQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5LCBkZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksICgpKTsKLSAgICByZXR1
cm4gZGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OwotfQotCi1EZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneSgpCi17Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVu
dCkiLCAiYWx0IHRleHQgZm9yIDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBv
ciB2YWx1ZSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpyZXNl
dEJ1dHRvbkRlZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0
IiwgImRlZmF1bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2Vz
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaGFibGVJ
bmRleEludHJvZHVjdGlvbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgaXMg
YSBzZWFyY2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsCi0gICAgICAgICJ0
ZXh0IHRoYXQgYXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdl
cyBpbiB0aGUgZm9ybSBvZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3Vi
bWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUg
ZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNM
YWJlbCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRs
ZSBmb3IgYSBtdWx0aXBsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4g
VGhpcyB0aXRsZSBzaG91bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExh
YmVsKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0
ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8g
ZmlsZSBpcyBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5OjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBi
dXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0
aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlU
ZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRp
c3BsYXkgaW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsK
LX0KLQotI2lmIFBMQVRGT1JNKE1BQykKLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJ1bmtub3duIiwgIlVua25vd24gZmlsZW5hbWUiKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5k
b3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlu
a2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBO
ZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJ
bWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi0jaWYgUExBVEZPUk0oUVQpCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2Fy
ZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJD
b3B5IEltYWdlIEFkZHJlc3MgbWVudSBpdGVtIik7Ci19Ci0jZW5kaWYKLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdX
aW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBX
aW5kb3ciLCAiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5BdWRpb0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3Bl
biBBdWRpbyBpbiBOZXcgV2luZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJDb3B5IFZpZGVvIEFkZHJlc3MiLCAiQ29weSBWaWRlbyBBZGRyZXNz
IExvY2F0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2Fy
ZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJD
b3B5IEF1ZGlvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFDb250cm9scygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvbnRyb2xzIiwg
Ik1lZGlhIENvbnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
YXVzZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNl
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIk11dGUiLCAiTWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVu
RnJhbWVJbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gRnJh
bWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnQ29weSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAi
Q29weSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJCYWNrIiwgIkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJk
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJT
dG9wIiwgIlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdDdXQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFz
dGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotI2lmIFBMQVRGT1JNKEdUSykK
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
RGVsZXRlKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiRGVsZXRlIjsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnSW5wdXRNZXRob2RzKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAi
SW5wdXQgTWV0aG9kcyI7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuICJVbmljb2RlIjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFFUKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuICJTZWxlY3QgQWxsIjsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZv
dW5kIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiTGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnU2VhcmNoV2ViKCkKLXsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
LSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3
a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKLSAgICByZXR1cm4gZm9y
bWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJj
aCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5h
bWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29n
bGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLSNlbmRpZgotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29u
c3QgU3RyaW5nJiBzZWxlY3RlZFN0cmluZykKLXsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIFVOVVNFRF9Q
QVJBTShzZWxlY3RlZFN0cmluZyk7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg
aW4gRGljdGlvbmFyeSIsICJMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0i
KTsKLSNlbHNlCi0jaWYgVVNFKENGKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VsZWN0
ZWRDRlN0cmluZyhBZG9wdENGLCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShzZWxl
Y3RlZFN0cmluZykuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXpl
ZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJMb29rIFVwIOKAnCVA4oCdIiwgIkxvb2sgVXAgY29udGV4
dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkp
OwotI2Vsc2UKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCDigJw8c2VsZWN0aW9u
PuKAnSIsICJMb29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLnJl
cGxhY2UoIjxzZWxlY3Rpb24+IiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2Vs
ZWN0ZWRTdHJpbmcpKTsKLSNlbmRpZgotI2VuZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdu
b3JlIEdyYW1tYXIiLCAiSWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3Bl
bGxpbmdNZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdy
YW1tYXIiLCAiU3BlbGxpbmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBp
dGVtIHRpdGxlIik7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5k
IEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxp
bmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwg
IkNoZWNrIHNwZWxsaW5nIHdoaWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVj
a0dyYW1tYXJXaXRoU3BlbGxpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVj
ayBHcmFtbWFyIFdpdGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiRm9udCIsICJGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ0l0YWxpYygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkl0YWxpYyIsICJJ
dGFsaWMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdPdXRsaW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJP
dXRsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFyYWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3Jh
cGggZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVu
dSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAi
U2VsZWN0aW9uIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERp
cmVjdGlvbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVmYXVs
dCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBS
aWdodCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi0jaWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNo
IGluIFNwb3RsaWdodCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IEZvbnRzIiwgIlNob3cgZm9udHMgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29u
dGV4dE1lbnVJdGVtVGFnU3R5bGVzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3R5
bGVzLi4uIiwgIlN0eWxlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlNwZWVjaCIsICJTcGVlY2ggY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0
U3BlYWtpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdGFydCBTcGVha2luZyIs
ICJTdGFydCBzcGVha2luZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtp
bmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGlj
YWxseSIsICJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJ
dGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJT
dWJzdGl0dXRpb25zIiwgIlN1YnN0aXR1dGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTdWJzdGl0dXRpb25zKGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykgCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFN1YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRp
dGxlIik7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJt
ZW51IGl0ZW0gdGl0bGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTbWFydCBDb3B5L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFzdGUgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29u
dGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTbWFydCBRdW90ZXMiLCAiU21hcnQgUXVvdGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0RGFzaGVzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwg
IlNtYXJ0IERhc2hlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3MgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiVGV4dCBSZXBsYWNlbWVudCIsICJUZXh0IFJlcGxhY2VtZW50IGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJUcmFuc2Zvcm1hdGlvbnMiLCAiVHJhbnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiTWFrZSBVcHBlciBDYXNlIiwgIk1ha2UgVXBwZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdNYWtlTG93ZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBM
b3dlciBDYXNlIiwgIk1ha2UgTG93ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDYXBp
dGFsaXplKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2FwaXRhbGl6ZSIsICJDYXBp
dGFsaXplIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiBy
ZXBsYWNlZFN0cmluZykKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiByZXBs
YWNlZFN0cmluZzsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiSW5zcGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJj
aGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIHJlY2VudCBzZWFyY2hl
cyIsICJMYWJlbCBmb3Igb25seSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tp
bmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4g
cGVyZm9ybWVkIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNl
YXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhh
dCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBh
cyBlbWJlZGRlZCBtZW51IHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNsZWFyIFJlY2VudCBTZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4g
UmVjZW50IFNlYXJjaGVzIG1lbnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFdlYkFyZWFUZXh0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSFRNTCBjb250ZW50IiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3Igd2ViIGFyZWEiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6QVhMaW5rVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImxpbmsiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlzdE1hcmtlclRleHQo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJsaXN0IG1hcmtlciIsICJhY2Nlc3NpYmls
aXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpc3QgbWFya2VyIik7Ci19Ci0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3IgaW1hZ2UgbWFwIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OkFYSGVhZGluZ1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJoZWFkaW5n
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGluZ3MiKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdFRlcm1U
ZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2Yg
YSBkZWZpbml0aW9uIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OkFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImRlZmluaXRpb24iLCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKLX0KLQotI2lmIFBMQVRG
T1JNKE1BQykKLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQVJJQUNvbnRl
bnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSkKLXsKLSAgICBpZiAoYXJpYVR5cGUg
PT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxl
cnQuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIp
Ci0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBh
Y2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7Ci0gICAg
aWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGFjdHMgYXMgYW4gZGlhbG9nLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0
aW9uTG9nIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFj
Y2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgY29uc29sZSBsb2cuIik7Ci0gICAgaWYg
KGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25NYXJxdWVlIikKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQg
YWN0cyBhcyBhIG1hcnF1ZWUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxp
Y2F0aW9uU3RhdHVzIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9u
IHN0YXR1cyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgc3Rh
dHVzIHVwZGF0ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25U
aW1lciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lciIsICJBbiBBUklBIGFj
Y2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIHVwZGF0aW5nIHRpbWVyLiIpOyAgICAK
LSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBh
Y3RzIGFzIGEgZG9jdW1lbnQuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3Vt
ZW50QXJ0aWNsZSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsgICAg
Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnROb3RlIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIm5vdGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQg
YWN0cyBhcyBhIG5vdGUgaW4gYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09
ICJBUklBRG9jdW1lbnRSZWdpb24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVn
aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5j
dCByZWdpb24gaW4gYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklB
TGFuZG1hcmtBcHBsaWNhdGlvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBs
aWNhdGlvbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFw
cGxpY2F0aW9uLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0Jhbm5l
ciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiYW5uZXIiLCAiQW4gQVJJQSBhY2Nl
c3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGJhbm5lci4iKTsgICAgCi0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBTGFuZG1hcmtDb21wbGVtZW50YXJ5IikKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImNvbXBsZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3Vw
IHRoYXQgYWN0cyBhcyBhIHJlZ2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOyAg
ICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbnRlbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5
IGdyb3VwIHRoYXQgY29udGFpbnMgY29udGVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09
ICJBUklBTGFuZG1hcmtNYWluIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1haW4i
LCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9ydGlvbiBv
ZiB0aGUgd2Vic2l0ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtO
YXZpZ2F0aW9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAi
QW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdh
dGlvbiBlbGVtZW50cyBvZiBhIHdlYnNpdGUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAi
QVJJQUxhbmRtYXJrU2VhcmNoIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlYXJj
aCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBhIHNlYXJjaCBm
ZWF0dXJlIG9mIGEgd2Vic2l0ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNl
ckludGVyZmFjZVRvb2x0aXAiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRp
cCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4i
KTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQotICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91
cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOwotICAgIGlmIChhcmlhVHlw
ZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJt
YXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0
aWNhbCBzeW1ib2xzLiIpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLSNlbmRpZgotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlv
biB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFj
Y2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKSAKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
c2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEg
cmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFRleHRGaWVsZEFjdGlvblZl
cmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRp
bmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0
ZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRo
YXQgd2lsbCBvY2N1ciB3aGVuIGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2Vk
IGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJjaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2Nj
dXIgd2hlbiBhbiB1bmNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nl
c3NpYmlsaXR5Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFY
TWVudUxpc3RBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biAic2VsZWN0IjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhN
ZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gInNlbGVjdCI7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OkFYTGlua0FjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwg
IlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBj
bGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJNaXNzaW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdo
ZW4gYSBwbHVnaW4gaXMgbWlzc2luZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5OjpjcmFzaGVkUGx1Z2luVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlBsdWctaW4gRmFpbHVyZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhv
c3QgcHJvY2VzcyBoYXMgY3Jhc2hlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5OjptdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMp
Ci17Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBm
aWxlcyIsICJMYWJlbCB0byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGlu
IGEgZmlsZSB1cGxvYWQgY29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1i
ZXJPZkZpbGVzKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dW5r
bm93bkZpbGVTaXplVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24i
LCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi0j
aWYgUExBVEZPUk0oV0lOKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp1
cGxvYWRGaWxlVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInVw
bG9hZCI7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmFsbEZpbGVz
VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gImFsbCBmaWxlcyI7
Ci19Ci0KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpidWlsdEluUERGUGx1Z2luTmFtZSgpCi17Ci0gICAgLy8gQWxzbyBl
eHBvc2VkIHRvIERPTS4KLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0IGJ1aWx0LWlu
IFBERiIsICJQc2V1ZG8gcGx1Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlu
cyBwYWdlIGluIFNhZmFyaS4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6cGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKQotewotICAgIC8vIEFsc28gZXhwb3Nl
ZCB0byBET00uCi0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBvcnRhYmxlIERvY3VtZW50IEZv
cm1hdCIsICJEZXNjcmlwdGlvbiBvZiB0aGUgKG9ubHkpIHR5cGUgc3VwcG9ydGVkIGJ5IFBERiBw
c2V1ZG8gcGx1Zy1pbi4gVmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZh
cmkuIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1l
bnVJdGVtNTEyKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUp
IiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtMTAyNCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEwMjQgKE1lZGl1bSBHcmFkZSkiLCAiTWVudSBpdGVt
IHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiMjA0OCAoSGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlH
RU4gcG9wLXVwIG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6a2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBob3N0Q0ZTdHJpbmcoQWRvcHRDRiwgaG9zdC5jcmVhdGVDRlN0
cmluZygpKTsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkco
IktleSBmcm9tICVAIiwgIk5hbWUgb2Yga2V5Y2hhaW4ga2V5IGdlbmVyYXRlZCBieSB0aGUgS0VZ
R0VOIHRhZyIpLCBob3N0Q0ZTdHJpbmcuZ2V0KCkpOwotfQotCi0jaWYgUExBVEZPUk0oSU9TKQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6aHRtbFNlbGVjdE11bHRpcGxlSXRl
bXMoc2l6ZV90IGNvdW50KQotewotICAgIHN3aXRjaCAoY291bnQpIHsKLSAgICBjYXNlIDA6Ci0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNlbnQgdGhlIGVsZW1l
bnQgPHNlbGVjdCBtdWx0aXBsZT4gd2hlbiBubyA8b3B0aW9uPiBpdGVtcyBhcmUgc2VsZWN0ZWQg
KGlPUyBvbmx5KSIpOwotICAgIGNhc2UgMToKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IjEgSXRlbSIsICJQcmVzZW50IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gYSBz
aW5nbGUgPG9wdGlvbj4gaXMgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJXp1IEl0
ZW1zIiwgIlByZXNlbnQgdGhlIG51bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9uPiBpdGVtcyBpbiBh
IDxzZWxlY3QgbXVsdGlwbGU+IGVsZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3VudCk7Ci0gICAgfQot
fQotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5n
JiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSNpZiBVU0UoQ0YpCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZp
bGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAg
UmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVu
dCgpKTsKLSAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9w
dENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZv
cm1hdHRlckRlY2ltYWxTdHlsZSkpOwotCi0gICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgp
OwotICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVh
dGUoMCwga0NGTnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7Ci0gICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiB3aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmlu
Z1dpdGhOdW1iZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOwotCi0gICAgaW50
IGhlaWdodEludCA9IHNpemUuaGVpZ2h0KCk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBo
ZWlnaHQoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdo
dEludCkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0Ys
IENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0
KCksIGhlaWdodC5nZXQoKSkpOwotCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhX
RUJfVUlfU1RSSU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFu
ZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVu
YW1lQ0ZTdHJpbmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkp
OwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRv
cHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2Fs
aXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRs
ZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90
IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSk7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJf
VUlfU1RSSU5HKCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBh
IHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwg
c2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5h
bWUpOwotI2VuZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om1l
ZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUg
bWVkaWEgaXMgbG9hZGluZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5OjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMg
bWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0
cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVu
dCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xs
ZXIiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNv
bnRyb2xsZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmls
aXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAg
IGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Im11dGUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIp
OwotICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygidW5tdXRlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVy
biBtdXRlIG9mZiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNj
cmlwdGlvbiBmb3IgcGxheSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24i
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciBwYXVzZSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2xp
ZGVyIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAo
bmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGlt
ZWxpbmUgc2xpZGVyIHRodW1iIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
dGltZWxpbmUgdGh1bWIiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5
IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOwotICAg
IGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoInJldHVybiB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIHJldHVybiB0byByZWFsIHRpbWUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUg
PT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJl
bGFwc2VkIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2Vk
IHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIp
Ci0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3Np
YmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKLSAg
ICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJzdGF0dXMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBz
dGF0dXMiKTsKLSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNj
cmlwdGlvbiBmb3IgZW50ZXIgZnVsbHNjcmVlbiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAi
U2Vla0ZvcndhcmRCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBm
b3J3YXJkIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJk
IGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRl
c2NyaXB0aW9uIGZvciBmYXN0IHJldmVyc2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNo
b3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJz
aG93IGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJIaWRlQ2xv
c2VkQ2FwdGlvbnNCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBj
bG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRl
IGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLQotICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQ
YW5lbCBjb250YWluZXIgc2hvdWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxp
dHkgaGllcmFyY2h5LgotICAgIGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKLSAgICAgICAg
cmV0dXJuIFN0cmluZygpOwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IFN0cmluZygpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2Nh
bGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewot
ICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiYXVkaW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXki
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRy
b2xsZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInZpZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1
cyBkaXNwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxl
bWVudCBjb250cm9sbGVyIik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygibXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIG11dGUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1
dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJhY2tz
IiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB1biBtdXRlIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJQbGF5QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJl
Z2luIHBsYXliYWNrIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRvbiIp
OwotICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJwYXVzZSBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGF1
c2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJtb3ZpZSB0aW1lIHNjcnViYmVyIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciB0aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIi
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0aHVt
YiIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7
Ci0gICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJzZWVrIG1vdmllIGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAg
dGV4dCBmb3IganVtcCBiYWNrIDMwIHNlY29uZHMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0g
IlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFsIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxw
IHRleHQgZm9yIHJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOwot
ICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiY3VycmVudCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIGVsYXBzZWQgdGltZSBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0g
IlRpbWVSZW1haW5pbmdEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm51
bWJlciBvZiBzZWNvbmRzIG9mIG1vdmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAg
dGV4dCBmb3IgcmVtYWluaW5nIHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJTdGF0
dXNEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUg
c3RhdHVzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlzcGxh
eSIpOwotICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4
dCBmb3IgZmFzdCByZXdpbmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJk
QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBmb3J3
YXJkIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7
Ci0gICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiUGxheSBtb3ZpZSBpbiBmdWxsc2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIGVudGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUg
PT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJzdGFydCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUg
PT0gIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJzdG9wIGRpc3BsYXlpbmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgaGVs
cCB0ZXh0IGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLQotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQg
dGltZSkKLXsKLSAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiaW5kZWZpbml0ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBh
biBpbmRlZmluaXRlIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOwotCi0gICAgaW50IHNl
Y29uZHMgPSBzdGF0aWNfY2FzdDxpbnQ+KGZhYnNmKHRpbWUpKTsgCi0gICAgaW50IGRheXMgPSBz
ZWNvbmRzIC8gKDYwICogNjAgKiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAq
IDYwKTsKLSAgICBpbnQgbWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25k
cyAlPSA2MDsKLQotICAgIGlmIChkYXlzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVk
U3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAl
NCRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xs
ZXIgdGltZSB2YWx1ZSA+PSAxIGRheSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7
Ci0gICAgaWYgKGhvdXJzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdF
Ql9VSV9TVFJJTkcoIiUxJGQgaG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYw
IG1pbnV0ZXMiKSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIGlmIChtaW51dGVzKQot
ICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQg
bWludXRlcyAlMiRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlh
IGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29uZHMp
OwotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBz
ZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRp
bWUgdmFsdWUgPCA2MCBzZWNvbmRzIiksIHNlY29uZHMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24g
bWVzc2FnZSBmb3IgcmVxdWlyZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2
YWx1ZSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0
aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJ0eXBlIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250
cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUiKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hU
ZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJW
YWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29u
c3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgZm9ybSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhp
bXVtIGFsbG93ZWQgbGVuZ3RoIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygicmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBm
b3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5p
bXVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJyYW5nZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29u
dHJvbHMgd2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlz
bWF0Y2hUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBtaXNtYXRjaCIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBu
b3QgcmVzcGVjdGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjJlOWRmNTE2OTk2YTgzNzdhZWQ0YzY4OTQz
MTVkZDliYWYxZWFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0jZGVmaW5lIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneV9oCi0KLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2luY2x1
ZGUgIkxvY2FsaXphdGlvblN0cmF0ZWd5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5IDogcHVibGljIExvY2FsaXphdGlvblN0cmF0ZWd5IHsKLXB1YmxpYzoKLSAgICBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKLQotICAgIHN0YXRpYyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kmIHNoYXJlZCgpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgaW5wdXRFbGVtZW50
QWx0VGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZp
bGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBm
aWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVC
dXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHRE
ZXRhaWxzU3VtbWFyeVRleHQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJp
bmcgY29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJ
bk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlzaygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlMaW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotI2lmIFBMQVRGT1JNKFFUKQotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJk
KCk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJh
bWVJbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHkoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ3V0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFz
dGUoKTsKLSNpZiBQTEFURk9STShHVEspCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnRGVsZXRlKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5w
dXRNZXRob2RzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29k
ZSgpOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSNlbmRpZgotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2Vs
ZWN0ZWRTdHJpbmcpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5M
aW5rKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1h
cigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVs
KGJvb2wgc2hvdyk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3Bl
bGxpbmdXaGlsZVR5cGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0ZvbnRNZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQm9sZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90
bGlnaHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhib29sIHNo
b3cpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3Rl
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcygpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nKTsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lu
c3BlY3RFbGVtZW50KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
blZpZGVvSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOwotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKLSNlbmRpZiAvLyBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hl
c1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhXZWJBcmVhVGV4dCgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYTGlua1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBBWEhlYWRpbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRl
cm1UZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25U
ZXh0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIEFYQVJJQUNvbnRl
bnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFs
IFN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlv
QnV0dG9uQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9u
VmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigp
OwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhM
aW5rQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwotICAg
IHZpcnR1YWwgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKTsKLSNpZiBQTEFURk9STShXSU4p
Ci0gICAgdmlydHVhbCBTdHJpbmcgdXBsb2FkRmlsZVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBhbGxGaWxlc1RleHQoKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFs
IFN0cmluZyBidWlsdEluUERGUGx1Z2luTmFtZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHBkZkRv
Y3VtZW50VHlwZURlc2NyaXB0aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0
ZW01MTIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTEwMjQoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBr
ZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCk7Ci0jaWYgUExBVEZPUk0o
SU9TKQotICAgIHZpcnR1YWwgU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCk7
Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSAgICB2
aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IElu
dFNpemUmKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4
dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJp
bmcoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxv
Y2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2VuZGlm
IC8vIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGZhYjc2NGI4NmFlZWNmZGU4MDAzOGY1ZDJmMzI5MTdmNTI4ZjlkYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA3ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBM
b2NhbGl6YXRpb25TdHJhdGVneV9oCi0jZGVmaW5lIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLQot
I2lmIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnRTaXplOwotCi1jbGFzcyBMb2NhbGl6
YXRpb25TdHJhdGVneSB7Ci1wdWJsaWM6ICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIGlucHV0RWxl
bWVudEFsdFRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0
TGFiZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0
aW9uKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVs
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSA9
IDA7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5r
bm93bkZpbGVMYWJlbCgpID0gMDsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRv
dygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExp
bmtUb0Rpc2soKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUxpbmtUb0NsaXBib2FyZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkgPSAwOwotI2lmIFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpID0gMDsK
LSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUlu
TmV3V2luZG93KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHkoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKSA9IDA7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlbGV0ZSgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpID0gMDsKLSNlbmRpZgotI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSA9IDA7Ci0jZW5kaWYKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25h
cnkoY29uc3QgU3RyaW5nJiBzZWxlY3RlZFN0cmluZykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlw
aW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3Jh
bW1hcldpdGhTcGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdGb250TWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdCb2xkKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxp
YygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9u
TWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGly
ZWN0aW9uTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdE
ZWZhdWx0RGlyZWN0aW9uKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0xlZnRUb1JpZ2h0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1JpZ2h0VG9MZWZ0KCkgPSAwOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0
dXRpb25zKGJvb2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0Q29weVBhc3RlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0UXVvdGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0RGFzaGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0TGlua3MoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnVGV4dFJlcGxhY2VtZW50KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3Ry
aW5nKSA9IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuVmlkZW9Jbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29u
dHJvbHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Vu
dGVyVmlkZW9GdWxsc2NyZWVuKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGxheSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBhdXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ01lZGlhTXV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdJbnNwZWN0RWxlbWVudCgpID0gMDsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
LQotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgp
ID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIEFYV2ViQXJlYVRleHQoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhMaW5rVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RN
YXJrZXJUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIEFYSGVhZGluZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKE1B
QykKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmlu
ZyYgYXJpYVR5cGUpID0gMDsKLSNlbmRpZgotICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIEFYQnV0
dG9uQWN0aW9uVmVyYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0
aW9uVmVyYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIEFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5n
IG1pc3NpbmdQbHVnaW5UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNyYXNoZWRQbHVn
aW5UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQo
dW5zaWduZWQgbnVtYmVyT2ZGaWxlcykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHVua25vd25G
aWxlU2l6ZVRleHQoKSA9IDA7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJp
bmcgdXBsb2FkRmlsZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWxsRmlsZXNUZXh0
KCkgPSAwOwotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcg
YnVpbHRJblBERlBsdWdpbk5hbWUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcGRmRG9jdW1l
bnRUeXBlRGVzY3JpcHRpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0
ZW01MTIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGtleWdlbk1lbnVJdGVtMjA0OCgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkgPSAw
OwotI2VuZGlmCi0KLSAgICB2aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5n
IG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
bWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRl
eHQoY29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlh
VGltZURlc2NyaXB0aW9uKGZsb2F0KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgPSAw
OwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+TG9jYWxpemF0aW9uU3RyYXRlZ3koKQotICAg
IHsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0Uo
UExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2VuZGlmIC8vIExvY2FsaXphdGlvblN0cmF0ZWd5X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMTQw
OWJiZjMxYjFhYjJlM2I3NGVlMzQwNTdiNjRlN2U4MGJjZGUwYy4uYTUxNDNhY2NiMTY5MTEzZTMw
ZjQ1NWY3ZDlmYWRmMmExZDU4NTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA2LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtMjcsNzExICsyNyw5MjkgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiUGxhdGZv
cm1TdHJhdGVnaWVzLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2lmIFVTRShDRikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjZW5kaWYKKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgorCisjaWYg
UExBVEZPUk0oTUFDKQorI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykK
Ky8vIFdlIGNhbid0IHVzZSBTdHJpbmc6OmZvcm1hdCBmb3IgdHdvIHJlYXNvbnM6CisvLyAgMSkg
SXQgZG9lc24ndCBoYW5kbGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gdGhlIGZvcm1hdCBzdHJp
bmcuCisvLyAgMikgSXQgZG9lc24ndCBoYW5kbGUgdGhlICUyJGQgc3ludGF4LgorLy8gTm90ZSB0
aGF0IGJlY2F1c2UgfGZvcm1hdHwgaXMgdXNlZCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byB2
YV9zdGFydCwgaXQgY2Fubm90IGJlIGEgcmVmZXJlbmNlCisvLyB0eXBlIGFjY29yZGluZyB0byBz
ZWN0aW9uIDE4LjcvMyBvZiB0aGUgQysrIE4xOTA1IHN0YW5kYXJkLgorc3RhdGljIFN0cmluZyBm
b3JtYXRMb2NhbGl6ZWRTdHJpbmcoU3RyaW5nIGZvcm1hdCwgLi4uKQoreworI2lmIFVTRShDRikK
KyAgICB2YV9saXN0IGFyZ3VtZW50czsKKyAgICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7
CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmb3JtYXRDRlN0cmluZyhBZG9wdENGLCBmb3Jt
YXQuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQo
QWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1h
dENGU3RyaW5nLmdldCgpLCBhcmd1bWVudHMpKTsKKyAgICB2YV9lbmQoYXJndW1lbnRzKTsKKyAg
ICByZXR1cm4gcmVzdWx0LmdldCgpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmb3JtYXQ7CisjZW5kaWYKK30KIAotc3RhdGljIGlubGluZSBMb2NhbGl6YXRpb25T
dHJhdGVneSogbG9jYWxpemF0aW9uU3RyYXRlZ3koKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKK3N0YXRpYyBT
dHJpbmcgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmln
aW5hbCkKIHsKLSAgICBpZiAoaGFzUGxhdGZvcm1TdHJhdGVnaWVzKCkpCi0gICAgICAgIHJldHVy
biBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKKyAgICBpZiAo
b3JpZ2luYWwuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3JpZ2luYWw7CiAKLSAgICByZXR1
cm4gJkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6c2hhcmVkKCk7CisgICAgLy8gVHJ1bmNh
dGUgdGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdp
dGggQXBwS2l0LgorICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9v
a3VwTWVudUl0ZW0gPSAyNDsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBz
aXMsICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7CisKKyAgICBTdHJpbmcgdHJpbW1lZCA9IG9y
aWdpbmFsLnN0cmlwV2hpdGVTcGFjZSgpOworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVy
cyA9IG51bUNoYXJhY3RlcnNJbkdyYXBoZW1lQ2x1c3RlcnModHJpbW1lZCwgbWF4TnVtYmVyT2ZH
cmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51SXRlbSk7CisgICAgcmV0dXJuIG51bWJlck9mQ2hh
cmFjdGVycyA9PSB0cmltbWVkLmxlbmd0aCgpID8gdHJpbW1lZCA6IHRyaW1tZWQubGVmdChudW1i
ZXJPZkNoYXJhY3RlcnMpICsgZWxsaXBzaXM7CiB9CisjZW5kaWYKIAogU3RyaW5nIGlucHV0RWxl
bWVudEFsdFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5pbnB1
dEVsZW1lbnRBbHRUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQi
LCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50
cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7CiB9CiAKIFN0cmluZyByZXNldEJ1dHRv
bkRlZmF1bHRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnJl
c2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0
IiwgImRlZmF1bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2Vz
Iik7CiB9CiAKIFN0cmluZyBzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24o
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXgu
IEVudGVyIHNlYXJjaCBrZXl3b3JkczogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGV4
dCB0aGF0IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMg
aW4gdGhlIGZvcm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKIH0KIAogU3RyaW5nIHN1Ym1p
dEJ1dHRvbkRlZmF1bHRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24g
d2ViIHBhZ2VzIik7CiB9CiAKIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbkNob29zZUZpbGVM
YWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBm
b3IgYSBzaW5nbGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKIH0K
IAogU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5maWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxl
c0xhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRs
ZSBmb3IgYSBtdWx0aXBsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4g
VGhpcyB0aXRsZSBzaG91bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7CiB9CiAKIFN0cmlu
ZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIm5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGlu
IGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQi
KTsKIH0KIAogU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRM
YWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0
ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8g
ZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0
byBiZSBzZWxlY3RlZCIpOwogfQogCiBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxzU3Vt
bWFyeVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRv
IGRpc3BsYXkgaW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQi
KTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxh
YmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29weUltYWdlVW5r
bm93bkZpbGVMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVu
a25vd24gZmlsZW5hbWUiKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5r
SW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBMaW5rIGluIE5l
dyBXaW5kb3ciLCAiT3BlbiBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExp
bmtUb0Rpc2soKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZp
bGUiLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xp
cGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExp
bmsgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5JbWFnZUluTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gSW1hZ2UgaW4g
TmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFn
ZVRvQ2xpcGJvYXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29u
dGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCi1T
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQotewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1h
Z2VVcmxUb0NsaXBib2FyZCgpOwotfQotI2VuZGlmCi0KIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1l
IGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NvcHkoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdDb3B5KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHki
LCAiQ29weSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnR29CYWNrKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnR29CYWNrKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAi
QmFjayBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
R29Gb3J3YXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZvcndh
cmQiLCAiRm9yd2FyZCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3RvcCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1N0b3AoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RvcCIs
ICJTdG9wIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdSZWxvYWQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdSZWxvYWQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmVsb2FkIiwg
IlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ3V0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnQ3V0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1dCIsICJDdXQgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
UGFzdGUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKFFUKQogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NlbGVjdEFsbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuICJTZWxlY3QgQWxsIjsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTm9HdWVzc2VzRm91bmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJObyBHdWVzc2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5n
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnSWdub3JlU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIFNw
ZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiTGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGlu
IFNwb3RsaWdodCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKTsKKyNpZiBQTEFURk9STShNQUMp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVy
TmFtZShBZG9wdENGLCB3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsK
KyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3
aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3
aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsK
KyNlbHNlCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJT
ZWFyY2ggd2l0aCBHb29nbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKKyNlbmRpZgogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2Vs
ZWN0ZWRTdHJpbmcpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeShzZWxlY3RlZFN0cmluZyk7CisjaWYgZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0ZWRTdHJpbmcpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJMb29rIFVwIGluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5
IGNvbnRleHQgbWVudSBpdGVtIik7CisjZWxzZQorI2lmIFVTRShDRikKKyAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IHNlbGVjdGVkQ0ZTdHJpbmcoQWRvcHRDRiwgdHJ1bmNhdGVkU3RyaW5nRm9y
TG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJl
dHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiTG9vayBVcCDigJwlQOKA
nSIsICJMb29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLCBzZWxl
Y3RlZENGU3RyaW5nLmdldCgpKTsKKyNlbHNlCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxv
b2sgVXAg4oCcPHNlbGVjdGlvbj7igJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRo
IHNlbGVjdGVkIHdvcmQiKS5yZXBsYWNlKCI8c2VsZWN0aW9uPiIsIHRydW5jYXRlZFN0cmluZ0Zv
ckxvb2t1cE1lbnVJdGVtKHNlbGVjdGVkU3RyaW5nKSk7CisjZW5kaWYKKyNlbmRpZgogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3Jl
R3JhbW1hcigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJ
Z25vcmUgR3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3BlbGxpbmdNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNv
bnRleHQgc3ViLW1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hv
d1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChzaG93KTsKKyAgICBp
ZiAoc2hvdykKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5k
IEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7CiB9CiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3Bl
bGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAi
Q2hlY2sgc3BlbGxpbmcgd2hpbGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGVja0dy
YW1tYXJXaXRoU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgR3Jh
bW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdG
b250TWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4
dCBzdWItbWVudSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlNob3cgRm9udHMiLCAiU2hvdyBmb250cyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
I2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJJdGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ091dGxp
bmUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRl
eHQgbWVudSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3R5bGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0
eWxlcy4uLiIsICJTdHlsZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNob3cgQ29sb3JzIiwgIlNob3cgY29sb3JzIGNvbnRleHQgbWVudSBpdGVtIik7
CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTcGVlY2giLCAiU3BlZWNoIGNvbnRleHQgc3Vi
LW1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2lu
ZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRl
bVRhZ1N0YXJ0U3BlYWtpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RhcnQgU3Bl
YWtpbmciLCAiU3RhcnQgc3BlYWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3Jp
dGluZ0RpcmVjdGlvbk1lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJQYXJhZ3JhcGggRGlyZWN0aW9uIiwgIlBhcmFncmFwaCBkaXJlY3Rpb24g
Y29udGV4dCBzdWItbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
ZXh0RGlyZWN0aW9uTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlvbiBjb250
ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1
bHREaXJlY3Rpb24oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9S
aWdodCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQg
dG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1JpZ2h0VG9MZWZ0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiUmlnaHQgdG8gTGVmdCIsICJSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKICNpZiBQTEFURk9STShNQUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0
U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHki
LCAiQ29ycmVjdCBTcGVsbGluZyBBdXRvbWF0aWNhbGx5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1
dGlvbnNNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAi
U3Vic3RpdHV0aW9ucyBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJvb2wgc2hvdykKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlv
bnMoc2hvdyk7CisgICAgaWYgKHNob3cpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJT
aG93IFN1YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKIH0KIAog
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgQ29weS9QYXN0ZSIsICJTbWFydCBD
b3B5L1Bhc3RlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTbWFydFF1b3RlcygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNtYXJ0IFF1b3RlcyIsICJTbWFydCBRdW90ZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBj
b250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRM
aW5rcygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0TGlua3MoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgTGlu
a3MiLCAiU21hcnQgTGlua3MgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJUZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFjZW1lbnQg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
Zm9ybWF0aW9uc01lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlRyYW5zZm9ybWF0aW9ucyIsICJUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWIt
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNl
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnTWFrZVVwcGVyQ2FzZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVy
IENhc2UiLCAiTWFrZSBVcHBlciBDYXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNl
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBp
dGFsaXplKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnQ2FwaXRhbGl6ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDYXBpdGFs
aXplIiwgIkNhcGl0YWxpemUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hh
bmdlQmFjayhyZXBsYWNlZFN0cmluZyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gcmVwbGFjZWRTdHJpbmc7CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3
V2luZG93KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdp
bmRvdyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1
ZGlvSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBp
biBOZXcgV2luZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJv
YXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkNvcHkgVmlkZW8gQWRkcmVzcyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRp
b0xpbmtUb0NsaXBib2FyZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJDb3B5IEF1ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNz
IExvY2F0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDb250cm9scyIsICJNZWRpYSBDb250cm9scyBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAi
TWVkaWEgTG9vcCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJFbnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1
bGxzY3JlZW4gY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ01lZGlhUGxheSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQ
bGF5IiwgIk1lZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAgICAgCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJ
bnNwZWN0RWxlbWVudCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1l
bnQiLCAiSW5zcGVjdCBFbGVtZW50IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAogU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJj
aGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1l
bnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyBy
ZWNlbnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFy
cyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNo
ZXMgaGF2ZSBiZWVuIHBlcmZvcm1lZCIpOwogfQogCi1TdHJpbmcgc2VhcmNoTWVudVJlY2VudFNl
YXJjaGVzVGV4dCAoKQorU3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51UmVjZW50U2VhcmNo
ZXNUZXh0ICgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMiLCAi
bGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tp
bmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxl
Iik7CiB9CiAKIFN0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51Q2xlYXJSZWNlbnRT
ZWFyY2hlc1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNl
YXJjaGVzIiwgIm1lbnUgaXRlbSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMg
bWVudSdzIGNvbnRlbnRzIik7CiB9CiAKIFN0cmluZyBBWFdlYkFyZWFUZXh0KCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhXZWJBcmVhVGV4dCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJIVE1MIGNvbnRlbnQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciB3ZWIgYXJlYSIpOwogfQogCiBTdHJpbmcgQVhMaW5rVGV4dCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTGlua1RleHQoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibGluayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IGxpbmsiKTsKIH0KIAogU3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWExpc3RNYXJrZXJUZXh0KCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImxpc3QgbWFya2VyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3IgbGlzdCBtYXJrZXIiKTsKIH0KIAogU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhJbWFnZU1hcFRleHQoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNj
cmlwdGlvbiBmb3IgaW1hZ2UgbWFwIik7CiB9CiAKIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhIZWFkaW5nVGV4dCgpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNj
cmlwdGlvbiBmb3IgaGVhZGluZ3MiKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJt
VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlv
bkxpc3RUZXJtVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJtIiwgInRlcm0g
d29yZCBvZiBhIGRlZmluaXRpb24iKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZp
bml0aW9uVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVm
aW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJk
ZWZpbml0aW9uIiwgImRlZmluaXRpb24gcGhyYXNlIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMp
CiBTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWEFSSUFDb250ZW50R3JvdXBU
ZXh0KGFyaWFUeXBlKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0
IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNz
aWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7CisgICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQg
YWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBw
bGljYXRpb25EaWFsb2ciKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlhbG9nIiwg
IkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9nLiIpOwor
ICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBh
Y3RzIGFzIGEgY29uc29sZSBsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGlj
YXRpb25NYXJxdWVlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAi
QW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUuIik7Cisg
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiYXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOworICAgIGlmIChhcmlh
VHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uVGltZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygidGltZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
biB1cGRhdGluZyB0aW1lci4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFU
eXBlID09ICJBUklBRG9jdW1lbnRBcnRpY2xlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImFydGljbGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
biBhcnRpY2xlLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50Tm90ZSIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJub3RlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYSBub3RlIGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFy
aWFUeXBlID09ICJBUklBRG9jdW1lbnRSZWdpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygicmVnaW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMg
YSBkaXN0aW5jdCByZWdpb24gaW4gYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0g
IkFSSUFMYW5kbWFya0FwcGxpY2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImFwcGxpY2F0aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMg
YW4gYXBwbGljYXRpb24uIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtCYW5u
ZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYmFubmVyIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBiYW5uZXIuIik7CisgICAgaWYgKGFyaWFU
eXBlID09ICJBUklBTGFuZG1hcmtDb21wbGVtZW50YXJ5IikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImNvbXBsZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgYWN0cyBhcyBhIHJlZ2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQ29udGVudEluZm8iKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiY29udGVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBjb250YWlucyBjb250ZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRt
YXJrTWFpbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYWluIiwgIkFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGlzIHRoZSBtYWluIHBvcnRpb24gb2YgdGhlIHdlYnNp
dGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKKyAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBv
ZiBhIHdlYnNpdGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2gi
KQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNz
aWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRl
LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIikKKyAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRvb2x0aXAiLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHRvb2x0aXAuIik7CisgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBVGFiUGFuZWwiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVs
IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50
IG9mIGEgdGFiLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOworICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KICNlbmRpZgogICAgIAogU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQnV0dG9uQWN0aW9uVmVy
YigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhl
IGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2Vk
IGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJi
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhSYWRpb0J1dHRvbkFj
dGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNs
aWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhUZXh0Rmll
bGRBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhU
ZXh0RmllbGRBY3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRl
IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBm
aWVsZCBpcyBzZWxlY3RlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmlu
ZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5BWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygidW5jaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdp
bGwgb2NjdXIgd2hlbiBhIGNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBh
Y2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
YigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYVW5jaGVja2VkQ2hl
Y2tCb3hBY3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZl
cmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBj
aGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3Ry
aW5nIEFYTGlua0FjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5BWExpbmtBY3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAi
LCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlz
IGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhNZW51
TGlzdFBvcHVwQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAic2VsZWN0IjsKIH0KIAogU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhNZW51TGlzdEFjdGlvblZl
cmIoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0IjsKIH0KIAog
U3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+bWlzc2luZ1BsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
TWlzc2luZyBQbHVnLWluIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlz
IG1pc3NpbmciKTsKIH0KIAogU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y3Jhc2hlZFBsdWdpblRleHQoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiUGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNl
ZCBpZiBwbHVnaW4gaG9zdCBwcm9jZXNzIGhhcyBjcmFzaGVkIik7CiB9CiAKIFN0cmluZyBtdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm11bHRpcGxlRmlsZVVwbG9hZFRleHQobnVtYmVyT2ZG
aWxlcyk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIl
ZCBmaWxlcyIsICJMYWJlbCB0byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVk
IGluIGEgZmlsZSB1cGxvYWQgY29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBu
dW1iZXJPZkZpbGVzKTsKIH0KIAogU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT51bmtub3duRmlsZVNpemVUZXh0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAg
ZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oV0lOKQogU3RyaW5n
IHVwbG9hZEZpbGVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
dXBsb2FkRmlsZVRleHQoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAidXBs
b2FkIjsKIH0KIAogU3RyaW5nIGFsbEZpbGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmFsbEZpbGVzVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuICJhbGwgZmlsZXMiOwogfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiBT
dHJpbmcgYnVpbHRJblBERlBsdWdpbk5hbWUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5idWlsdEluUERGUGx1Z2luTmFtZSgpOworICAgIC8vIEFsc28gZXhwb3NlZCB0
byBET00uCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIldlYktpdCBidWlsdC1pbiBQREYiLCAi
UHNldWRvIHBsdWctaW4gbmFtZSwgdmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBp
biBTYWZhcmkuIik7CiB9CiAKIFN0cmluZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnBkZkRvY3VtZW50VHlwZURlc2Ny
aXB0aW9uKCk7CisgICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4KKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiUG9ydGFibGUgRG9jdW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAo
b25seSkgdHlwZSBzdXBwb3J0ZWQgYnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIElu
c3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4iKTsKIH0KIAogU3RyaW5nIGtleWdlbk1l
bnVJdGVtNTEyKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2Vu
TWVudUl0ZW01MTIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUp
IiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmlu
ZyBrZXlnZW5NZW51SXRlbTEwMjQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5rZXlnZW5NZW51SXRlbTEwMjQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAy
NCAoTWVkaXVtIEdyYWRlKSIsICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVu
dSIpOwogfQogCiBTdHJpbmcga2V5Z2VuTWVudUl0ZW0yMDQ4KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0ZW0yMDQ4KCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIjIwNDggKEhpZ2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZ
R0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNv
bnN0IFN0cmluZyYgaG9zdCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
a2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShob3N0KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IGhvc3RDRlN0cmluZyhBZG9wdENGLCBob3N0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVy
biBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFt
ZSBvZiBrZXljaGFpbiBrZXkgZ2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0
cmluZy5nZXQoKSk7CiB9CiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorU3RyaW5nIGh0
bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCBjb3VudCkKK3sKKyAgICBzd2l0Y2ggKGNvdW50
KSB7CisgICAgY2FzZSAwOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMCBJdGVtcyIs
ICJQcmVzZW50IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gbm8gPG9wdGlvbj4g
aXRlbXMgYXJlIHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAgICBjYXNlIDE6CisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCIxIEl0ZW0iLCAiUHJlc2VudCB0aGUgZWxlbWVudCA8c2VsZWN0
IG11bHRpcGxlPiB3aGVuIGEgc2luZ2xlIDxvcHRpb24+IGlzIHNlbGVjdGVkIChpT1Mgb25seSki
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdF
Ql9VSV9TVFJJTkcoIiV6dSBJdGVtcyIsICJQcmVzZW50IHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQg
PG9wdGlvbj4gaXRlbXMgaW4gYSA8c2VsZWN0IG11bHRpcGxlPiBlbGVtZW50IChpT1Mgb25seSki
KSwgY291bnQpOworICAgIH0KK30KKyNlbmRpZgorCiBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBT
dHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5pbWFnZVRpdGxlKGZpbGVuYW1lLCBzaXplKTsKKyNpZiBVU0Uo
Q0YpCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJp
bmcoKSk7CisgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2Nh
bGVDb3B5Q3VycmVudCgpKTsKKyAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZv
cm1hdHRlcihBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCks
IGtDRk51bWJlckZvcm1hdHRlckRlY2ltYWxTdHlsZSkpOworCisgICAgaW50IHdpZHRoSW50ID0g
c2l6ZS53aWR0aCgpOworICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwg
Q0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7CisgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiB3aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRl
ckNyZWF0ZVN0cmluZ1dpdGhOdW1iZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkp
OworCisgICAgaW50IGhlaWdodEludCA9IHNpemUuaGVpZ2h0KCk7CisgICAgUmV0YWluUHRyPENG
TnVtYmVyUmVmPiBoZWlnaHQoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50
VHlwZSwgJmhlaWdodEludCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3Ry
aW5nKEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBm
b3JtYXR0ZXIuZ2V0KCksIGhlaWdodC5nZXQoKSkpOworCisgICAgcmV0dXJuIGZvcm1hdExvY2Fs
aXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRs
ZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90
IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRT
dHJpbmcuZ2V0KCkpOworI2Vsc2UKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1l
Q0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJu
IGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwg
IndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9u
IHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwg
c2l6ZS5oZWlnaHQoKSk7CisjZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXpl
ZFN0cmluZyhXRUJfVUlfU1RSSU5HKCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93
IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9s
LCBub3QgeCkiKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5h
bWU+IiwgZmlsZW5hbWUpOworI2VuZGlmCiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5n
U3RhdGVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWVkaWFF
bGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2Fk
aW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEg
aXMgbG9hZGluZyIpOwogfQogCiBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRl
VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1lZGlhRWxlbWVu
dExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2
ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNo
aW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJv
bEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6
ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dFN0cmluZyhjb250cm9sTmFtZSk7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xs
ZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoInZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJv
bGUgZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChu
YW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOworICAg
IGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygidW5tdXRlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRl
IG9mZiBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3IgcGxheSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRl
c2NyaXB0aW9uIGZvciBwYXVzZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKKyAgICBpZiAobmFtZSA9
PSAiU2xpZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUg
c2xpZGVyIHRodW1iIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxp
bmUgdGh1bWIiKTsKKyAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChu
YW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInJldHVybiB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHJldHVybiB0byByZWFsIHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkN1
cnJlbnRUaW1lRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2Vk
IHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUg
ZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5
IHJvbGUgZGVzY3JpcHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKKyAgICBpZiAo
bmFtZSA9PSAiU3RhdHVzRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJz
dGF0dXMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMi
KTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3IgZW50ZXIgZnVsbHNjcmVlbiBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0Zv
cndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJk
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRv
biIpOworICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0
aW9uIGZvciBmYXN0IHJldmVyc2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9z
ZWRDYXB0aW9uc0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNs
b3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cg
Y2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQg
Y2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3Nl
ZCBjYXB0aW9ucyBidXR0b24iKTsKKworICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBj
b250YWluZXIgc2hvdWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGll
cmFyY2h5LgorICAgIGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOwogfQogCi1TdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNv
bnN0IFN0cmluZyYgY29udHJvbE5hbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxl
bWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnRy
b2xOYW1lKTsKKyAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImF1ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1
cyBkaXNwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxl
bWVudCBjb250cm9sbGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xz
IGFuZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9u
IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09
ICJVbk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIGF1
ZGlvIHRyYWNrcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBidXR0b24i
KTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJiZWdpbiBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxh
eSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygicGF1c2UgcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIHBhdXNlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmls
aXR5IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNs
aWRlclRodW1iIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2Ny
dWJiZXIgdGh1bWIiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRl
ciB0aHVtYiIpOworICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygic2VlayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJp
bGl0eSBoZWxwIHRleHQgZm9yIGp1bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlm
IChuYW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciByZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBi
dXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlm
IChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJudW1iZXIgb2Ygc2Vjb25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJp
bGl0eSBoZWxwIHRleHQgZm9yIHJlbWFpbmluZyB0aW1lIGRpc3BsYXkiKTsKKyAgICBpZiAobmFt
ZSA9PSAiU3RhdHVzRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJy
ZW50IG1vdmllIHN0YXR1cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3Rh
dHVzIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygic2VlayBxdWlja2x5IGJhY2siLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIGZhc3QgcmV3aW5kIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJT
ZWVrRm9yd2FyZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1
aWNrbHkgZm9yd2FyZCIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJk
IGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAg
IGlmIChuYW1lID09ICJTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygic3RhcnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNz
aWJpbGl0eSBoZWxwIHRleHQgZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworICAg
IGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygic3RvcCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3Np
YmlsaXR5IGhlbHAgdGV4dCBmb3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFN0cmlu
ZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5sb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0
aW1lKTsKKyAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiaW5kZWZpbml0ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBp
bmRlZmluaXRlIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOworCisgICAgaW50IHNlY29u
ZHMgPSBzdGF0aWNfY2FzdDxpbnQ+KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgZGF5cyA9IHNlY29u
ZHMgLyAoNjAgKiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjAp
OworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9
IDYwOworCisgICAgaWYgKGRheXMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJp
bmcoV0VCX1VJX1NUUklORygiJTEkZCBkYXlzICUyJGQgaG91cnMgJTMkZCBtaW51dGVzICU0JGQg
c2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0
aW1lIHZhbHVlID49IDEgZGF5IiksIGRheXMsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAg
ICBpZiAoaG91cnMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJ
X1NUUklORygiJTEkZCBob3VycyAlMiRkIG1pbnV0ZXMgJTMkZCBzZWNvbmRzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgbWlu
dXRlcyIpLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7CisgICAgaWYgKG1pbnV0ZXMpCisgICAg
ICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBtaW51
dGVzICUyJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29u
dHJvbGxlciB0aW1lIHZhbHVlID49IDYwIHNlY29uZHMiKSwgbWludXRlcywgc2Vjb25kcyk7Cisg
ICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIHNlY29u
ZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2
YWx1ZSA8IDYwIHNlY29uZHMiKSwgc2Vjb25kcyk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT52YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygidmFsdWUgbWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVp
cmVkIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKIH0KIAogU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1p
c3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JGaWxlVGV4
dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
Rm9yTXVsdGlwbGVGaWxlVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JTZWxlY3RUZXh0KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdU
ZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwog
fQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFs
aWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3Qg
bWF0Y2hpbmcgdHlwZSIpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hGb3JFbWFpbFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaEZvck11bHRpcGxlRW1haWxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cisg
ICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hU
ZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwog
fQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJu
TWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0
Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmlu
ZyBhIGNvbnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKIFN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBm
b3IgZm9ybSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVt
IGFsbG93ZWQgbGVuZ3RoIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5k
ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZv
ciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmlt
dW0iKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29u
c3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJyYW5nZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29u
dHJvbHMgd2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKIH0KIAogU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKTsKLX0KLQotI2VuZGlmIC8vIFVTRShQTEFURk9S
TV9TVFJBVEVHSUVTKQotCi0jaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikKLVN0
cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KGtleSwgc3RybGVuKGtleSkpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250
cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpOwogfQot
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCBhNzNjOTkxZmVkYTk3ZWU5OWI5YWZlMjg3YzVjNjBi
NjMxYTczNTJhLi41MzJlYTFjN2JlMTMwMDljODI5NjdkYjgyMGM3NmQ0Nzc3ZTJiMzI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xNzQsNiArMTc0
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVt
TmFtZShjb25zdCBTdHJpbmcmIGhvc3QpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCBudW0pOworI2VuZGlmCisK
ICAgICBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRT
aXplJiBzaXplKTsKIAogICAgIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7
CkBAIC0xOTgsMTEgKzIwMiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKTsK
ICAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmlu
ZyYgYmFzZSwgY29uc3QgU3RyaW5nJiBzdGVwKTsKIAotCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShXSU4pCiAjZGVmaW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5nLCBkZXNjcmlwdGlvbikg
V2ViQ29yZTo6bG9jYWxpemVkU3RyaW5nKHN0cmluZykKICNkZWZpbmUgV0VCX1VJX1NUUklOR19L
RVkoc3RyaW5nLCBrZXksIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoa2V5
KQogCiAgICAgU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpOworI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRl
Z2llcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CmluZGV4IGRjOWZjMzVhNzBlOTNjZTY0MzlmN2JhNzMzZjQ0ZDNkMjc2M2M3NGEuLjY0M2YzNzUw
NThlY2I4MzBiYjU3ZDUwZTkyY2RkNjU5MDNiMTYyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMjksOCArMjksNiBAQAogCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUGxhdGZvcm1T
dHJhdGVnaWVzKiBzX3BsYXRmb3JtU3RyYXRlZ2llczsKQEAgLTU5LDExICs1Nyw2IEBAIGJvb2wg
aGFzUGxhdGZvcm1TdHJhdGVnaWVzKCkKICAgICByZXR1cm4gc19wbGF0Zm9ybVN0cmF0ZWdpZXM7
CiB9CiAKLUxvY2FsaXphdGlvblN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxv
Y2FsaXphdGlvblN0cmF0ZWd5KCkKLXsKLSAgICByZXR1cm4gbmV3IERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNF
KFBMQVRGT1JNX1NUUkFURUdJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
U3RyYXRlZ2llcy5oCmluZGV4IDc0ODJkNjAwNWZmMDYzZDY1ZmMwNzdmYmI4YWExZDRkMTVkY2Iz
N2IuLjE0ZThjNGNmZTYwN2EzNzEyZjM2MTU3OTIxODE4OTMyYThiNGQ4ODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zMiw3ICszMiw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29va2llc1N0cmF0ZWd5OwogY2xhc3MgUGx1
Z2luU3RyYXRlZ3k7Ci1jbGFzcyBMb2NhbGl6YXRpb25TdHJhdGVneTsKIGNsYXNzIFZpc2l0ZWRM
aW5rU3RyYXRlZ3k7CiAKIGNsYXNzIFBsYXRmb3JtU3RyYXRlZ2llcyB7CkBAIC01MSwxMyArNTAs
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3BsdWdpblN0cmF0ZWd5OwogICAgIH0KIAot
ICAgIExvY2FsaXphdGlvblN0cmF0ZWd5KiBsb2NhbGl6YXRpb25TdHJhdGVneSgpCi0gICAgewot
ICAgICAgICBpZiAoIW1fbG9jYWxpemF0aW9uU3RyYXRlZ3kpCi0gICAgICAgICAgICBtX2xvY2Fs
aXphdGlvblN0cmF0ZWd5ID0gY3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKLSAgICAgICAg
cmV0dXJuIG1fbG9jYWxpemF0aW9uU3RyYXRlZ3k7Ci0gICAgfQotCiAgICAgVmlzaXRlZExpbmtT
dHJhdGVneSogdmlzaXRlZExpbmtTdHJhdGVneSgpCiAgICAgewogICAgICAgICBpZiAoIW1fdmlz
aXRlZExpbmtTdHJhdGVneSkKQEAgLTY5LDcgKzYxLDYgQEAgcHJvdGVjdGVkOgogICAgIFBsYXRm
b3JtU3RyYXRlZ2llcygpCiAgICAgICAgIDogbV9jb29raWVzU3RyYXRlZ3koMCkKICAgICAgICAg
LCBtX3BsdWdpblN0cmF0ZWd5KDApCi0gICAgICAgICwgbV9sb2NhbGl6YXRpb25TdHJhdGVneSgw
KQogICAgICAgICAsIG1fdmlzaXRlZExpbmtTdHJhdGVneSgwKQogICAgIHsKICAgICB9CkBAIC04
MSwxMiArNzIsMTAgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIENvb2tpZXNT
dHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGx1Z2lu
U3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCkgPSAwOwotICAgIHZpcnR1YWwgTG9jYWxp
emF0aW9uU3RyYXRlZ3kqIGNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CiAgICAgdmlydHVh
bCBWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkgPSAwOwog
CiAgICAgQ29va2llc1N0cmF0ZWd5KiBtX2Nvb2tpZXNTdHJhdGVneTsKICAgICBQbHVnaW5TdHJh
dGVneSogbV9wbHVnaW5TdHJhdGVneTsKLSAgICBMb2NhbGl6YXRpb25TdHJhdGVneSogbV9sb2Nh
bGl6YXRpb25TdHJhdGVneTsKICAgICBWaXNpdGVkTGlua1N0cmF0ZWd5KiBtX3Zpc2l0ZWRMaW5r
U3RyYXRlZ3k7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
TG9jYWxpemVkU3RyaW5nc0VmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9j
YWxpemVkU3RyaW5nc0VmbC5jcHAKaW5kZXggMjcyNDBlODJiNTgxNGM0NWFiZDA1Y2JiNWMyZWU2
ZTAyYTM3MTFhYS4uYzRhODJmYTY2ZGY0Mzc4M2RhNDIwYjYzNzE2NmZmY2Q1MDVlN2IwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZs
LmNwcApAQCAtNTU1LDkgKzU1NSw0IEBAIFN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpCiAgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInBsdWdpbiBjcmFzaGVkIik7CiB9CiAKLVN0cmluZyBs
b2NhbGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KGtleSwgc3RybGVuKGtleSkpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKaW5kZXggMDdiZWQ4ZGIzZTkw
ZWU2ZDI1MzlhNzVlZDJlMmJkMzI1ZmU5NzM2Yy4uZmVmMzE3YzdmZTM2YTg0YzAzOTQwOWMyZmMw
ZGYyODg1ZjU4ZWVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xv
Y2FsaXplZFN0cmluZ3NHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9M
b2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApAQCAtNjUyLDkgKzY1Miw0IEBAIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikK
ICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJzdGVwIG1pc21hdGNoIikpOwogfQogCi1T
dHJpbmcgbG9jYWxpemVkU3RyaW5nKGNvbnN0IGNoYXIqIGtleSkKLXsKLSAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tVVRGOChrZXksIHN0cmxlbihrZXkpKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ3
Y2NmYWJhNWJiMjJiOTEzYjM5ODFmNDk1ZmZjODJmMjUwNmFlOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKQEAgLTAs
MCArMSw2MzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU3RhaWtvcyBDb21wdXRpbmcg
U2VydmljZXMgSW5jLiA8aW5mb0BzdGFpa29zLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1N0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBl
bGVtZW50KSBhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUs
IG9yIHZhbHVlIik7Cit9CisKK1N0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCit7Cisg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQi
LCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVzZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMi
KTsKK30KKworU3RyaW5nIHNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVGhpcyBpcyBhIHNl
YXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3b3JkczogIiwgInRleHQgdGhhdCBhcHBl
YXJzIGF0IHRoZSBzdGFydCBvZiBuZWFybHktb2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3Jt
IG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgnIik7Cit9CisKK1N0cmluZyBzdWJtaXRCdXR0b25EZWZh
dWx0TGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlN1Ym1pdCIsICJkZWZhdWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBm
b3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30KKworU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFi
ZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkNob29zZSBGaWxlIiwgInRpdGxlIGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9u
IHVzZWQgaW4gSFRNTCBmb3JtcyIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRp
cGxlRmlsZXNMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZpbGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUg
Y2hvb3NlciBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBh
cyBzaG9ydCBhcyBwb3NzaWJsZS4iKTsKK30KKworU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxl
Y3RlZExhYmVsKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJObyBmaWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1
dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Cit9CisK
K1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVk
IiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hl
biBubyBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZp
bGVzIHRvIGJlIHNlbGVjdGVkIik7Cit9CisKK1N0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlU
ZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJEZXRhaWxzIiwgInRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQg
aGFzIG5vIDxzdW1tYXJ5PiBjaGlsZCIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlbkxpbmtJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBpbiBOZXcgV2luZG93IiwgIk9wZW4gaW4gTmV3IFdp
bmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRMaW5rVG9EaXNrKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJTYXZlIExpbmsuLi4iLCAiRG93bmxvYWQgTGlua2VkIEZpbGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlM
aW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJP
cGVuIEltYWdlIiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2
ZSBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgSW1hZ2UiLCAi
Q29weSBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkg
SW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdp
bmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5k
b3coKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIk9wZW4gQXVkaW8iLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8i
LCAiQ29weSBWaWRlbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgQXVkaW8iLCAiQ29weSBBdWRpbyBM
aW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29w
IiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2gg
VmlkZW8gdG8gRnVsbHNjcmVlbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQbGF5KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJQbGF5IiwgIlBsYXkiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGF1c2UoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlBhdXNlIiwgIlBhdXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIk11dGUiLCAiTXV0ZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcg
V2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJDb3B5IiwgIkNvcHkgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiR28gQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEZvcndhcmQi
LCAiRm9yd2FyZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU3RvcCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiU3RvcCIsICJTdG9wIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3V0IiwgIkN1dCBj
b250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUo
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlBhc3RlIiwgIlBhc3RlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlbGVjdCBBbGwiLCAiU2VsZWN0IEFsbCBjb250ZXh0IG1l
bnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQo
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
Ik5vIEd1ZXNzZXMgRm91bmQiLCAiTm8gR3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIs
ICJJZ25vcmUgU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkFkZCBUbyBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNw
ZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTZWFyY2hXZWIoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlNlYXJjaCBUaGUgV2ViIiwgIlNlYXJjaCBUaGUgV2ViIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25h
cnkoY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJMb29rIFVwIEluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0
aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTGluaygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIkln
bm9yZSBHcmFtbWFyIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTcGVsbGluZ01lbnUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNwZWxsaW5nIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNv
bnRleHQgc3ViLW1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hv
d1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQoreworICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFy
IiwgIm1lbnUgaXRlbSB0aXRsZSIpIDoKKyAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJt
ZW51IGl0ZW0gdGl0bGUiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3Bl
bGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNoZWNrIFNwZWxsaW5nIiwgIkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBp
bmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0
eXBpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwg
IkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkZvbnRzIiwgIkZvbnQgY29udGV4dCBz
dWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCb2xk
IiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0l0YWxpYygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiSXRhbGljIiwgIkl0YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbmRlcmxpbmUiLCAiVW5kZXJsaW5l
IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRs
aW5lKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJPdXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEaXJlY3Rpb24iLCAiV3Jp
dGluZyBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVGV4dCBEaXJlY3Rpb24iLCAiVGV4dCBk
aXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJl
Y3Rpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0xlZnRUb1JpZ2h0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSaWdo
dCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExlZnQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJbnNwZWN0IiwgIkluc3BlY3Qg
RWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudU5vUmVj
ZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJObyByZWNlbnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRl
bSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQg
aW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBiZWVuIHBlcmZvcm1lZCIpOworfQorCitTdHJp
bmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVjZW50IHNlYXJjaGVzIiwgImxhYmVs
IGZvciBmaXJzdCBpdGVtIGluIHRoZSBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9u
IHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHVzZWQgYXMgZW1iZWRkZWQgbWVudSB0aXRsZSIpOwor
fQorCitTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDbGVhciByZWNl
bnQgc2VhcmNoZXMiLCAibWVudSBpdGVtIGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1w
dGllcyBtZW51J3MgY29udGVudHMiKTsKK30KKworU3RyaW5nIEFYV2ViQXJlYVRleHQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
QVhMaW5rVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK1N0cmluZyBBWExpc3RNYXJrZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIEFYSGVhZGluZ1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFY
RGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94
QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK1N0cmluZyBBWE1lbnVMaXN0QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVMaXN0UG9w
dXBBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIEFYTGlua0FjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbWlzc2luZ1BsdWdpblRl
eHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWct
aW4gaXMgbWlzc2luZyIpOworfQorCitTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbXVs
dGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVu
a25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwor
fQorCitTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRT
aXplJiBzaXplKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIiUxICglMnglMyBwaXhlbHMpIiwgIlRpdGxlIHN0cmluZyBmb3IgaW1hZ2VzIiku
YXJnKGZpbGVuYW1lKS5hcmcoc2l6ZS53aWR0aCgpKS5hcmcoc2l6ZS5oZWlnaHQoKSk7Cit9CisK
K1N0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlh
IGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOwor
fQorCitTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9h
ZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEg
bGl2ZSBicm9hZGNhc3QiKTsKK30KKworI2lmIEVOQUJMRShWSURFTykKKworU3RyaW5nIGxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAg
IGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQorICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBF
bGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJN
dXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiTXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Cisg
ICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVubXV0ZSBCdXR0b24iLCAiTWVkaWEgY29u
dHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQorICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IEJ1
dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1
c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJQYXVzZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Cisg
ICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNsaWRlciIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTbGlkZXIgVGh1bWIiLCAiTWVk
aWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIp
CisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlJld2luZCBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5h
bWUgPT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXR1cm4gdG8gUmVhbC10aW1lIEJ1dHRv
biIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVu
dFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiRWxhcHNlZCBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OworICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBUaW1l
IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTdGF0dXNE
aXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiU3RhdHVzIERpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Cisg
ICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJGdWxsc2NyZWVuIEJ1dHRvbiIsICJN
ZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRC
dXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTZWVrIEZvcndhcmQgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OworICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgQmFjayBCdXR0b24iLCAi
TWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5n
JiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBlbGVtZW50
IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVu
dCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRy
YWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVW5N
dXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiVW5tdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkJlZ2luIHBsYXliYWNrIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIp
CisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlBhdXNlIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChu
YW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJNb3ZpZSB0aW1lIHNjcnViYmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCisgICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2Ny
dWJiZXIgdGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUg
PT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBtb3ZpZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiBz
dHJlYW1pbmcgbW92aWUgdG8gcmVhbC10aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OworICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHRp
bWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVS
ZW1haW5pbmdEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWluaW5nIG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQorICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1v
dmllIHN0YXR1cyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9
PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkgbW92aWUgaW4gZnVsbC1zY3JlZW4gbW9kZSIsICJN
ZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRC
dXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTZWVrIHF1aWNrbHkgYmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
KyAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURl
c2NyaXB0aW9uKGZsb2F0IHRpbWUpCit7CisgICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKKyAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZp
bml0ZSB0aW1lIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKTsKKworICAgIGludCBzZWNvbmRz
ID0gKGludClmYWJzZih0aW1lKTsKKyAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAq
IDI0KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51
dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYg
KGRheXMpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIiUxIGRheXMgJTIgaG91cnMgJTMgbWludXRlcyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRp
bWUgZGVzY3JpcHRpb24iKS5hcmcoZGF5cykuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNl
Y29uZHMpOworCisgICAgaWYgKGhvdXJzKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBob3VycyAlMiBtaW51dGVzICUzIHNlY29uZHMi
LCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhz
ZWNvbmRzKTsKKworICAgIGlmIChtaW51dGVzKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBtaW51dGVzICUyIHNlY29uZHMiLCAiTWVk
aWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7CisKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBzZWNvbmRz
IiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoc2Vjb25kcyk7Cit9CisKKyNlbHNlIC8v
IEVOQUJMRShWSURFTykKKy8vIEZJWE1FOiAjaWYgRU5BQkxFKFZJREVPKSBzaG91bGQgYmUgaW4g
dGhlIGJhc2UgY2xhc3MKKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJp
bmcoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5h
bWUpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFU
aW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVG9vTG9uZ1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1Rl
eHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwCmluZGV4IDY0ZDQyNGQ5
NTZlM2MwOGY1NGZlYWI3YmIxNjU4OTE0MmYyMmVhMmUuLmJjNTE3MmViMzE4NTI4NzA0NGEyMzAz
YTc3NjE0MjhiMTY0Y2U2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwCkBAIC02OCwxMSArNjgsNiBAQCBQ
bHVnaW5TdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyZWF0ZVBsdWdpblN0cmF0ZWd5
KCkKICAgICByZXR1cm4gdGhpczsKIH0KIAotTG9jYWxpemF0aW9uU3RyYXRlZ3kqIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0OjpjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneSgpCi17Ci0gICAgcmV0dXJu
IHRoaXM7Ci19Ci0KIFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
cmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkKIHsKICAgICByZXR1cm4gdGhpczsKQEAgLTE0NSw2
MDggKzE0MCw2IEBAIHZvaWQgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmdldFBsdWdpbkluZm8oY29u
c3QgV2ViQ29yZTo6UGFnZSogcGFnZSwgVmVjdG9yPFdlYkNvCiAKIH0KIAotCi0vLyBMb2NhbGl6
YXRpb25TdHJhdGVneQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmlucHV0RWxlbWVu
dEFsdFRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlN1Ym1pdCIsICJTdWJtaXQgKGlucHV0IGVsZW1lbnQpIGFsdCB0ZXh0IGZvciA8
aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8gYWx0LCB0aXRsZSwgb3IgdmFsdWUiKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQi
LCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVzZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMi
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hhYmxlSW5kZXhJbnRy
b2R1Y3Rpb24oKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29y
ZHM6ICIsICJ0ZXh0IHRoYXQgYXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRl
IHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3Vi
bWl0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFN1Ym1pdCBidXR0b25zIGluIGZvcm1zIG9uIHdlYiBw
YWdlcyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25DaG9v
c2VGaWxlTGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkNob29zZSBGaWxlIiwgInRpdGxlIGZvciBhIHNpbmdsZSBmaWxlIGNob29z
ZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxl
cyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRN
TCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVk
TGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIk5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9u
IHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwo
KQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
Ik5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2Vk
IGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24g
YWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRGV0YWlscyIsICJ0
ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4g
Y2hpbGQiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBpbiBO
ZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZlIExpbmsu
Li4iLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xp
cGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJDb3B5IExpbmsiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdl
SW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIk9wZW4gSW1hZ2UiLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBJbWFnZSIsICJEb3dubG9hZCBJ
bWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIiwg
IkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5
IEltYWdlIEFkZHJlc3MiLCAiQ29weSBJbWFnZSBBZGRyZXNzIG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0lu
TmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJPcGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRp
b0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJPcGVuIEF1ZGlvIiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlW
aWRlb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBWaWRlbyIsICJDb3B5IFZpZGVvIExpbmsgTG9jYXRp
b24iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgQXVkaW8iLCAiQ29weSBBdWRpbyBMaW5r
IExvY2F0aW9uIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIENvbnRyb2xzIiwgIlRvZ2dsZSBN
ZWRpYSBDb250cm9scyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIExvb3AiLCAiVG9nZ2xlIE1lZGlh
IExvb3AgUGxheWJhY2siKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJT
d2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSIsICJQbGF5Iik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVz
ZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiUGF1c2UiLCAiUGF1c2UiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUiLCAiTXV0ZSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2lu
ZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJPcGVuIEZyYW1lIiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ0NvcHkoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkNvcHkiLCAiQ29weSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiR28gQmFjayIs
ICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJHbyBGb3J3YXJkIiwgIkZvcndhcmQg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdTdG9wKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdG9wIiwgIlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkN1dCIsICJDdXQgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWxl
Y3RBbGwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlNlbGVjdCBBbGwiLCAiU2VsZWN0IEFsbCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nl
c0ZvdW5kKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJObyBHdWVzc2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51
SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkFkZCBUbyBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNwZWxsaW5n
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWFyY2ggVGhlIFdlYiIsICJTZWFyY2ggVGhl
IFdlYiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcmKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxv
b2sgVXAgSW4gRGljdGlvbmFyeSIsICJMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTGluaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0ln
bm9yZUdyYW1tYXIoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgR3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1Nw
ZWxsaW5nTWVudSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiU3BlbGxpbmciLCAiU3BlbGxpbmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWIt
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQotewotICAgIHJldHVybiBzaG93
ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTaG93IFNwZWxsaW5n
IGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpIDoKLSAgICAgICAgICAgICAgICAgIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSGlkZSBTcGVsbGluZyBhbmQg
R3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaGVjayBTcGVsbGluZyIs
ICJDaGVjayBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGlu
ZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNwZWxsaW5nIHdoaWxlIHR5
cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgR3Jh
bW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJGb250cyIsICJGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0Jv
bGQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkJvbGQiLCAiQm9sZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCi17Ci0gICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSXRhbGljIiwgIkl0YWxp
YyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ091dGxpbmUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk91dGxpbmUiLCAiT3V0bGluZSBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRh
Z1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEaXJlY3Rpb24iLCAiV3JpdGluZyBkaXJlY3Rpb24gY29u
dGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRleHQgRGlyZWN0aW9uIiwgIlRl
eHQgZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRlZmF1
bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1Jp
Z2h0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdSaWdo
dFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiUmlnaHQgdG8gTGVmdCIsICJSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
SW5zcGVjdEVsZW1lbnQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkluc3BlY3QiLCAiSW5zcGVjdCBFbGVtZW50IGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoTWVudU5vUmVj
ZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJObyByZWNlbnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRl
bSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQg
aW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBiZWVuIHBlcmZvcm1lZCIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJl
Y2VudCBzZWFyY2hlcyIsICJsYWJlbCBmb3IgZmlyc3QgaXRlbSBpbiB0aGUgbWVudSB0aGF0IGFw
cGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB1c2VkIGFzIGVt
YmVkZGVkIG1lbnUgdGl0bGUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpz
ZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNsZWFyIHJlY2VudCBzZWFyY2hlcyIs
ICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJjaGVzIG1lbnUgdGhhdCBlbXB0aWVzIG1lbnUncyBj
b250ZW50cyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYV2ViQXJlYVRl
eHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTGlua1RleHQoKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OkFYTGlzdE1hcmtlclRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBT
dHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWEhlYWRpbmdUZXh0
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWERlZmluaXRpb25MaXN0VGVybVRleHQoKQot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhCdXR0b25BY3Rpb25WZXJiKCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6QVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpBWE1lbnVMaXN0QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhN
ZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhMaW5r
QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5n
KCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bWlzc2luZ1BsdWdpblRleHQo
KQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
Ik1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4g
aXMgbWlzc2luZyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyYXNoZWRQ
bHVnaW5UZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmco
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjptdWx0aXBsZUZpbGVVcGxvYWRU
ZXh0KHVuc2lnbmVkKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmlu
ZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnVua25vd25GaWxlU2l6ZVRl
eHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRl
bSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmltYWdlVGl0bGUoY29uc3Qg
U3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSAoJTJ4JTMgcGl4ZWxzKSIs
ICJUaXRsZSBzdHJpbmcgZm9yIGltYWdlcyIpLmFyZyhmaWxlbmFtZSkuYXJnKHNpemUud2lkdGgo
KSkuYXJnKHNpemUuaGVpZ2h0KCkpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
Om1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxvYWRpbmcuLi4iLCAiTWVkaWEgY29udHJv
bGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHRoZSBtZWRpYSBpcyBsb2FkaW5nIik7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRl
VGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3
aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQotI2lmIEVOQUJMRShWSURFTykK
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBpZiAobmFtZSA9PSAiQXVkaW9F
bGVtZW50IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiQXVkaW8gRWxlbWVudCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAg
ICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gRWxlbWVudCIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUgQnV0
dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJVbk11
dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJVbm11dGUgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwot
ICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSBCdXR0b24iLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UgQnV0
dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlk
ZXIiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJTbGlkZXIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIlNsaWRlclRodW1iIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiU2xpZGVyIFRodW1iIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOwotICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXdpbmQgQnV0dG9uIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUmV0dXJuIHRvIFJlYWwtdGltZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCi0gICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVsYXBz
ZWQgVGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAi
VGltZVJlbWFpbmluZ0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZW1haW5pbmcgVGltZSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN0YXR1cyBEaXNw
bGF5IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJGdWxs
c2NyZWVuQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiRnVsbHNjcmVlbiBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBGb3J3YXJk
IEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAi
U2Vla0JhY2tCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJTZWVrIEJhY2sgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotCi0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJp
bmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkF1ZGlvIGVsZW1l
bnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgIk1lZGlhIGNvbnRyb2xs
ZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQotICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBlbGVt
ZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUgYXVkaW8g
dHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJV
bk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJVbm11dGUgYXVkaW8gdHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQmVnaW4gcGxheWJhY2siLCAi
TWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9u
IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiUGF1c2UgcGxheWJhY2siLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYg
KG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTW92aWUgdGltZSBz
Y3J1YmJlciB0aHVtYiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFt
ZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV3aW5kIG1vdmllIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV0dXJu
IHN0cmVhbWluZyBtb3ZpZSB0byByZWFsLXRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkN1cnJlbnQgbW92aWUg
dGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVGlt
ZVJlbWFpbmluZ0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJSZW1haW5pbmcgbW92aWUgdGltZSIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkN1cnJlbnQg
bW92aWUgc3RhdHVzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1l
ID09ICJGdWxsc2NyZWVuQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSBtb3ZpZSBpbiBmdWxsLXNjcmVlbiBtb2RlIiwg
Ik1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2Fy
ZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBiYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OwotICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBmb3J3YXJk
IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCi17Ci0gICAgaWYg
KCFpc2Zpbml0ZSh0aW1lKSkKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZpbml0ZSB0aW1lIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRp
b24iKTsKLQotICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKLSAgICBpbnQgZGF5
cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsKLSAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8g
KDYwICogNjApOwotICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKLSAgICBz
ZWNvbmRzICU9IDYwOwotCi0gICAgaWYgKGRheXMpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGRheXMgJTIgaG91cnMgJTMgbWludXRl
cyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoZGF5cykuYXJnKGhv
dXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOwotCi0gICAgaWYgKGhvdXJzKQotICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBob3Vy
cyAlMiBtaW51dGVzICUzIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyho
b3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKLQotICAgIGlmIChtaW51dGVzKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBt
aW51dGVzICUyIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhtaW51dGVz
KS5hcmcoc2Vjb25kcyk7Ci0KLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICIlMSBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmco
c2Vjb25kcyk7Ci19Ci0KLSNlbHNlIC8vIEVOQUJMRShWSURFTykKLS8vIEZJWE1FOiAjaWYgRU5B
QkxFKFZJREVPKSBzaG91bGQgYmUgaW4gdGhlIGJhc2UgY2xhc3MKLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0
cmluZyYgbmFtZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0
IFN0cmluZyYgbmFtZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGlt
ZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoVklERU8p
Ci0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmlu
ZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdl
VHlwZU1pc21hdGNoVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
U3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1l
c3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxp
ZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotCiAvLyBWaXNpdGVkTGlu
a1N0cmF0ZWd5CiAKIGJvb2wgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmlzTGlua1Zpc2l0ZWQoUGFn
ZSogcGFnZSwgTGlua0hhc2ggaGFzaCwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgQXRvbWlj
U3RyaW5nJiBhdHRyaWJ1dGVVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmgKaW5kZXggNTA0OTE5ZTM4M2ZjOTQ3OTIy
Yzg0YjI3NWZhNGVkMTBmMjhhMWZmNi4uOGJjZWM1NjIyMWQ1MTM3OTJlOTAzYTQ4MDgzNGM1NDhi
YTA1NDY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0
Zm9ybVN0cmF0ZWdpZXNRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzUXQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHly
aWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKICAqCkBAIC0yOSw3ICsyOSw2IEBACiAjZGVmaW5lIFBsYXRmb3JtU3RyYXRlZ2llc1F0X2gK
IAogI2luY2x1ZGUgPENvb2tpZXNTdHJhdGVneS5oPgotI2luY2x1ZGUgPExvY2FsaXphdGlvblN0
cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8UGxhdGZvcm1TdHJhdGVnaWVzLmg+CiAjaW5jbHVkZSA8UGx1
Z2luU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxWaXNpdGVkTGlua1N0cmF0ZWd5Lmg+CkBAIC0zOCw3
ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFBhZ2U7CiB9CiAKLWNsYXNzIFBs
YXRmb3JtU3RyYXRlZ2llc1F0IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywg
cHJpdmF0ZSBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2lu
U3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6TG9jYWxpemF0aW9uU3RyYXRlZ3ksIHByaXZhdGUg
V2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSB7CitjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6
Q29va2llc1N0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRl
IFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IGluaXRpYWxpemUoKTsKIApAQCAtNDgsNyArNDcsNiBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNv
cmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29va2llc1N0cmF0
ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3koKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdp
blN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6
TG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0
cmF0ZWd5KCk7CiAgICAgCiAgICAgLy8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5CkBAIC01OCwx
MDEgKzU2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2luSW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVj
dG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7CiAKLSAgICAvLyBXZWJDb3JlOjpMb2NhbGl6YXRp
b25TdHJhdGVneQotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExp
bmtUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlMaW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9h
cmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFt
ZUluTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0Jh
Y2soKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2Fy
ZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOwot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29u
c3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTGluaygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdu
b3JlR3JhbW1hcigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxp
bmcoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25N
ZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0
RGlyZWN0aW9uKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdM
ZWZ0VG9SaWdodCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0luc3BlY3RFbGVtZW50KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xp
cGJvYXJkKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIEFYV2ViQXJlYVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTGlua1Rl
eHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBBWEhlYWRpbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWERlZmluaXRp
b25MaXN0VGVybVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYRGVmaW5pdGlvbkxp
c3REZWZpbml0aW9uVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhCdXR0b25BY3Rp
b25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVy
YigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWE1lbnVMaXN0QWN0aW9uVmVyYigpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
bWlzc2luZ1BsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNyYXNoZWRQbHVn
aW5UZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0
KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdW5rbm93
bkZpbGVTaXplVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgaW1hZ2VUaXRsZShjb25z
dCBXVEY6OlN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJp
bmcoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxvY2FsaXpl
ZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQpOwot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRj
aFRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVy
bk1pc21hdGNoVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUb29Mb25nVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpOwotCiAgICAgLy8gV2ViQ29yZTo6Vmlz
aXRlZExpbmtTdHJhdGVneQogICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFdlYkNvcmU6
OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgYmFzZVVSTCwg
Y29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZVVSTCk7CiAgICAgdmlydHVhbCB2b2lk
IGFkZFZpc2l0ZWRMaW5rKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc1dpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1dpbkNFLmgKaW5kZXggOTJkMzdkYzY1MzYyYTk1NWU2MWMwOWE1ZmIzNjFlY2Vi
NWZjZTNhMC4uNDdiMGUzNDI1YzdjNGI2NmNhNzg0N2Y4MmU3NThiNmMxZTIzMzIyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdp
ZXNXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZv
cm1TdHJhdGVnaWVzV2luQ0UuaApAQCAtMjYsNyArMjYsNiBAQAogI2RlZmluZSBQbGF0Zm9ybVN0
cmF0ZWdpZXNXaW5DRV9oCiAKICNpbmNsdWRlICJDb29raWVzU3RyYXRlZ3kuaCIKLSNpbmNsdWRl
ICJMb2NhbGl6YXRpb25TdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5o
IgogI2luY2x1ZGUgIlBsdWdpblN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdHJh
dGVneS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126656</attachid>
            <date>2012-02-11 16:48:48 -0800</date>
            <delta_ts>2012-02-11 17:11:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120211164847.patch</filename>
            <type>text/plain</type>
            <size>209231</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZkNWQyOTlmMTJhZWIx
NzFiNzI1NzhjNjVkZWZlZjBmMDM1MTdiZC4uNmNmNTQ0ODlkZDBhNTU5ZDFlM2IwZDg4Njg2OGU2
ZjM2YmZlZGM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2MiBAQAorMjAxMi0wMi0xMSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3Jk
ZXI6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9ybWF0TG9jYWxpemVkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRl
ZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OmlucHV0RWxlbWVu
dEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5v
RmlsZVNlbGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzayk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9v
a1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1t
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVW5kZXJsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ091
dGxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnU21hcnRRdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnU21hcnREYXNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU21h
cnRMaW5rcyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFj
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJD
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhMaXN0TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWEhlYWRpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0
RGVmaW5pdGlvblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklBQ29udGVudEdyb3VwVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEJ1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0
RmllbGRBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
Yik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhNZW51
TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6bWlzc2luZ1BsdWdpblRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1bmtub3duRmlsZVNp
emVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnVwbG9hZEZpbGVUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmFsbEZpbGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpidWlsdEluUERGUGx1Z2lu
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjprZXlnZW5NZW51SXRlbTUxMik6CisgICAgICAgIChXZWJDb3JlOjpr
ZXlnZW5NZW51SXRlbTEwMjQpOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW0yMDQ4
KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbktleWNoYWluSXRlbU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6aW1h
Z2VUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmls
ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdG
b3JNdWx0aXBsZUZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3RyYXRlZ2llczo6UGxhdGZvcm1TdHJhdGVnaWVzKToKKyAgICAgICAgKFBs
YXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmlu
Z3NFZmwuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0
LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aW5wdXRFbGVtZW50
QWx0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bGVCdXR0b25DaG9vc2VGaWxlTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNo
b29zZU11bHRpcGxlRmlsZXNMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9G
aWxlU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1Nl
bGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUlu
TmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
SW1hZ2VUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVXJsVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0N1dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0lnbm9yZUdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZ1doaWxlVHlwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrR3JhbW1hcldpdGhTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdGb250TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdCb2xk
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVOb1JlY2VudFNl
YXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaXN0TWFya2VyVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEhlYWRp
bmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYUmFk
aW9CdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dEZpZWxkQWN0aW9u
VmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhNZW51TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhN
ZW51TGlzdFBvcHVwQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25W
ZXJiKToKKyAgICAgICAgKFdlYkNvcmU6Om1pc3NpbmdQbHVnaW5UZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om11bHRpcGxlRmls
ZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93bkZpbGVTaXplVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxl
bWVudExvYWRpbmdTdGF0ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TGl2
ZUJyb2FkY2FzdFN0YXRlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1p
c21hdGNoVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1Rl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KToKKwogMjAxMi0wMi0xMSAgQW5kcmVhcyBLbGluZyAgPGF3ZXNvbWVrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQXR0cmlidXRlIHN0eWxlcyBzaG91bGQgYmUgY3JlYXRlZCBsYXppbHkuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCmluZGV4IDE0OGEyNzM2OTgwZTJiMjg5ZWY1YjBhMjg0NTdlMGY5ZWNmYThmMWUu
Ljk1NjlmZGFhMmY0ZWM5ZWVjNDUwNjA4N2EzZmExZjRkZTAwZjY1NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTEgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2FsaXphdGlvblN0cmF0
ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0Lmg6CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdCk6CisKIDIwMTItMDItMDkgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IGNvbXBpbGF0aW9uIHdpdGggbmV3ZXIgUXQ1CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCmluZGV4IDZkMmE3ZTY0N2IyZTBhZTA5YjdmNzZjYzA2NzI2Nzg1OTNm
OTIxMzEuLmZiOGY4Y2IxMWNiZDFkYTMzM2FjNjUzYjI2YjE3NjE5M2NjNWZhNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMTEgIEJlbmphbWluIFBvdWxh
aW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2Fs
aXphdGlvblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaDoKKwogMjAx
MS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgUGxh
dGZvcm1FdmVudCBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDhjMzE1ZDYyNzMxNzgw
NzAyOWY1MzQ4MGI1NzA1NmQxYzNlZjEyM2IuLjNhYTc4YzM5ZGEwYjM1NGQ4NWIwYmI2NWIxNGFj
N2VkNzFhZjdjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDU0LDcgKzEwNTQsNiBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwCiAgICAgcGxh
dGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCiAgICAgcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMu
Y3BwCi0gICAgcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcAogICAgIHBs
YXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5jcHAKICAgICBwbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDg0
NDhiM2FjOTY2ODJhZTVjZGNiYWJjMzA1MzQ0M2ZkNjcwZGFlYjAuLjAzNzc3ZjJlNjAzYzg1OGFk
MDYzYTQ0ZTJlYjM3NTUxZTQ4ZGZjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMjgxOSw4ICsyODE5LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBv
bmVudHMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3Bw
IFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ku
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFn
SW1hZ2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDE0M2Y3OGNlZDcwY2FmOWU1NWFmMjFiMGZjMjUy
NzczNTE3NTA5MjQuLjFlMTA1NTFhMzgzM2M0NDc1MGY2YjZiNzQ1YTFhOTIzYmU5YjViYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtMTAzNSw3ICsxMDM1LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZv
cm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAg
XAogICAgIHBsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcCBcCi0gICAgcGxhdGZvcm0vRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBcCiAgICAgcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIFwK
ICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5j
cHAgXApAQCAtMTE2OSw3ICsxMTY4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vVVVJ
RC5jcHAgXAogICAgIHBsYXRmb3JtL1dpZGdldC5jcHAgXAogICAgIHBsYXRmb3JtL1BsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAgXAotICAgIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIFwKICAg
ICBwbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcCBcCiAgICAgcGx1Z2lucy9QbHVnaW5EYXRh
YmFzZS5jcHAgXAogICAgIHBsdWdpbnMvUGx1Z2luRGVidWcuY3BwIFwKQEAgLTIwOTAsNyArMjA4
OCw2IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmggXAogICAgIHBs
YXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmggXAogICAgIHBsYXRmb3JtL0RhdGVDb21wb25lbnRz
LmggXAotICAgIHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIFwKICAgICBw
bGF0Zm9ybS9EcmFnRGF0YS5oIFwKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuaCBcCiAgICAgcGxh
dGZvcm0vRmlsZUNob29zZXIuaCBcCkBAIC0yODM1LDYgKzI4MzIsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvTG9nZ2luZ1F0
LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvTGFuZ3VhZ2VRdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0
L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1RlbXBvcmFyeUxpbmtT
dHVic1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Qm91bmRhcmllc1F0LmNwcCBc
CiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVUXQuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzQ5OGRmZGVjYTQ4YmYwMmY2ZWFkZjQ3NzQ3Mzc1
ZjYyZDFkNjYwMi4uOTA0NmY4ZGNmNDAxOWMxOTEzMmMwZGY2YWZkZTg5YWU4NDIwYzkyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTU0OCw3ICs1NDgsNiBAQCBfX1pON1dlYkNvcmUxN1JlZ3Vs
YXJFeHByZXNzaW9uRDFFdgogX19aTjdXZWJDb3JlMTdjYWNoZURPTVN0cnVjdHVyZUVQTlNfMTdK
U0RPTUdsb2JhbE9iamVjdEVQTjNKU0M5U3RydWN0dXJlRVBLTlMyXzlDbGFzc0luZm9FCiBfX1pO
N1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVJLTjNXVEY2U3RyaW5nRVJpCiBfX1pON1dlYkNv
cmUxOEhUTUxDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEUKLV9fWk43V2ViQ29y
ZTE4UGxhdGZvcm1TdHJhdGVnaWVzMjZjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneUV2CiBfX1pO
N1dlYkNvcmUxOFNlYXJjaFBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9f
Wk43V2ViQ29yZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FTlNf
MjdFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGVFCiBfX1pON1dlYkNvcmUxOHBsdWdpblNjcmlw
dE9iamVjdEVQTjNKU0M5RXhlY1N0YXRlRVBOU18xM0pTSFRNTEVsZW1lbnRFCkBAIC0xNDc3LDcg
KzE0NzYsNiBAQCBfX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5SWRFUktOM1dU
RjEyQXRvbWljU3RyaW5nRQogX19aVFZON1dlYkNvcmUxMkNocm9tZUNsaWVudEUKIF9fWlRWTjdX
ZWJDb3JlMTZJY29uRGF0YWJhc2VCYXNlRQogX19aVFZON1dlYkNvcmUxN0ZyYW1lTG9hZGVyQ2xp
ZW50RQotX19aVFZON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llc0UKIF9fWlRWTjdXZWJDb3Jl
MjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQogX19aVFZON1dlYkNvcmUyOEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw4U2V0dGluZ3NFCiBfZmlsZW5hbWVCeUZpeGluZ0lsbGVnYWxDaGFy
YWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTA4ZjBlY2E2YTFhNWIyYzg5MTU5MjEyZDI0MGEw
OWZhOThkNDMwYy4uYjkyM2E0NWI1N2UyMTJlYWQxYjUzODU1N2I4NTgwMWFlZWQ3ZWQ5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjUxLDcgKzI1MSw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
Q29va2llc1N0cmF0ZWd5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0N1cnNvci5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oJywKLSAgICAgICAgICAgICdwbGF0
Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vRHJhZ0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0ltYWdlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgnLApAQCAtMjY3LDcgKzI2Niw2IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vTGVuZ3RoQm94LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0xlbmd0aFNpemUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTGlua0hhc2guaCcsCi0gICAg
ICAgICAgICAncGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2dn
aW5nLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oJywK
QEAgLTI3MzIsNyArMjczMCw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Vyc29yLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9E
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9E
cmFnRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0V2ZW50TG9vcC5oJywKQEAgLTI3NTYsNyArMjc1Myw2IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vTGFuZ3VhZ2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9MZW5ndGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9MaW5rSGFzaC5jcHAnLAotICAg
ICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9Mb2dnaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggOTlhYzRkMmQ5Y2M2N2E1YmFhOGQzMjM0ZDk4ZTk2
YzRjMzRkN2M0Ny4uZDViZTM5ZjQ1ODdmNWZkY2ZlNDVlM2ZmODFlY2E0ZmY4YWNiNjA4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLm9yZGVyCkBAIC01MzI5LDkgKzUzMjksNiBAQCBfX1pOSzdXZWJDb3JlMTlBY2Nl
c3NpYmlsaXR5T2JqZWN0MTVpc01lZGlhVGltZWxpbmVFdgogLVtBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciByb2xlRGVzY3JpcHRpb25dCiBfX1pON1dlYkNvcmUxM0FYSGVhZGluZ1RleHRFdgog
X19aTjdXZWJDb3JlMjFoYXNQbGF0Zm9ybVN0cmF0ZWdpZXNFdgotX19aTjdXZWJDb3JlMThQbGF0
Zm9ybVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5QzFFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYSGVhZGluZ1RleHRFdgogX19aTks3V2ViQ29yZTI1QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDRzaXplRXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QxMWVsZW1lbnRSZWN0RXYKIF9fWk5LN1dlYkNvcmUxOUFjY2Vzc2liaWxp
dHlPYmplY3QxM2lzUmFkaW9CdXR0b25FdgpAQCAtNjY4MCw3ICs2Njc3LDYgQEAgX19aTks3V2Vi
Q29yZTE0RG9jdW1lbnRMb2FkZXIyNWlzTG9hZGluZ011bHRpcGFydENvbnRlbnRFdgogX19aTks3
V2ViQ29yZTRLVVJMMTdsYXN0UGF0aENvbXBvbmVudEV2CiBfX1pON1dlYkNvcmUyNGRlY29kZVVS
TEVzY2FwZVNlcXVlbmNlc0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEwaW1hZ2VUaXRs
ZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kxMGltYWdlVGl0bGVFUktOM1dURjZTdHJpbmdFUktOU183SW50U2l6
ZUUKIF9fWk43V2ViQ29yZUwyMWZvcm1hdExvY2FsaXplZFN0cmluZ0VOM1dURjZTdHJpbmdFegog
X19aTjdXZWJDb3JlOERvY3VtZW50OHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJD
b3JlOERvY3VtZW50NGhlYWRFdgpAQCAtNjczMCw3ICs2NzI2LDYgQEAgX19aTjdXZWJDb3JlMTZK
U0hUTUxQcmVFbGVtZW50MTVjcmVhdGVQcm90b3R5cGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0
SlNHbG9iYWwKIF9fWk43V2ViQ29yZTE2SlNIVE1MUHJlRWxlbWVudEMxRVBOM0pTQzlTdHJ1Y3R1
cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTRIVE1MUHJl
RWxlbWVudEVFRQogX19aTjdXZWJDb3JlMTJjYWNoZVdyYXBwZXJJTlNfMTRIVE1MUHJlRWxlbWVu
dEVFRXZQTlNfMTVET01XcmFwcGVyV29ybGRFUFRfUE5TXzEySlNET01XcmFwcGVyRQogX19aTjdX
ZWJDb3JlMTNBWFdlYkFyZWFUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MTNBWFdlYkFyZWFUZXh0RXYKIF9fWk43V2ViQ29yZTEwUmVuZGVyVmlldzEzYWJz
b2x1dGVRdWFkc0VSTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTG0wRUVFCiBfX1pON1dlYkNv
cmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxNmdldERvY3VtZW50TGlua3NFUk4zV1RGNlZl
Y3RvcklOUzFfNlJlZlB0cklOU18xOUFjY2Vzc2liaWxpdHlPYmplY3RFRUVMbTBFRUUKIF9fWk43
V2ViQ29yZThEb2N1bWVudDVsaW5rc0V2CkBAIC02NzQwLDcgKzY3MzUsNiBAQCBfX1pOSzdXZWJD
b3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MTFsYXlvdXRDb3VudEV2CiBfX1pOSzdXZWJD
b3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MjRlc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3NF
dgogX19aTks3V2ViQ29yZTE1UHJvZ3Jlc3NUcmFja2VyMTdlc3RpbWF0ZWRQcm9ncmVzc0V2CiBf
X1pON1dlYkNvcmUxMEFYTGlua1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kxMEFYTGlua1RleHRFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJJbmxpbmUyNWN1
bGxlZElubGluZUFic29sdXRlUmVjdHNFUEtTMF9STjNXVEY2VmVjdG9ySU5TXzdJbnRSZWN0RUxt
MEVFRVJLTlNfN0ludFNpemVFCiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0MTlpbnRlcm5hbExpbmtFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUxN0hUTUxBbmNob3JFbGVt
ZW50NGhyZWZFdgpAQCAtNjg5MSw5ICs2ODg1LDcgQEAgX19aTks3V2ViQ29yZTEzSFRNTEhSRWxl
bWVudDIzY2FuQ29udGFpblJhbmdlRW5kUG9pbnRFdgogX19aTks3V2ViQ29yZTE3QWNjZXNzaWJp
bGl0eUxpc3QxM2lzT3JkZXJlZExpc3RFdgogX19aTks3V2ViQ29yZTE3QWNjZXNzaWJpbGl0eUxp
c3QxNmlzRGVmaW5pdGlvbkxpc3RFdgogX19aTjdXZWJDb3JlMjRBWERlZmluaXRpb25MaXN0VGVy
bVRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNEFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dEV2CiBfX1pON1dlYkNvcmUzMEFYRGVmaW5pdGlvbkxpc3REZWZp
bml0aW9uVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMw
QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKIF9fWk43V2ViQ29yZTE5SFRNTEZpZWxk
U2V0RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTE3SFRNTExlZ2VuZEVsZW1lbnREMEV2CiBfX1pO
N1dlYkNvcmVMMTZ2aWRlb0NvbnN0cnVjdG9yRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9j
dW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RWIKQEAgLTcxODIsNyArNzE3NCw2IEBAIF9fWlRo
bjEyMF9ON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQzMG1lZGlhUGxheWVyTmV0d29ya1N0YXRl
Q2hhbmdlZEVQTlNfMTFNZWRpCiBfX1pON1dlYkNvcmUxMU1lZGlhUGxheWVyMTJuZXR3b3JrU3Rh
dGVFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTVzZXROZXR3b3JrU3RhdGVFTlNf
MTFNZWRpYVBsYXllcjEyTmV0d29ya1N0YXRlRQogX19aTjdXZWJDb3JlMjhtZWRpYUVsZW1lbnRM
b2FkaW5nU3RhdGVUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5MjhtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKIF9fWk43V2ViQ29yZTM0TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzE5Y3JlYXRlQVZBc3NldEZvclVSTEVSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTMwTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uMTdz
ZXREZWxheUNhbGxiYWNrc0ViCiBfX1pMMzhpbml0QVZVUkxBc3NldFJlZmVyZW5jZVJlc3RyaWN0
aW9uc0tleXYKQEAgLTc0MTcsNyArNzQwOCw2IEBAIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOXJvbGVWYWx1ZUV2CiBfX1pOSzdXZWJDb3JlMzVBY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjI0YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
RXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyMTVl
bGVtZW50VHlwZU5hbWVFdgogX19aTjdXZWJDb3JlMzRsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmdFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNUR5bmFtaWNOb2RlTGlzdDE1aW52YWxpZGF0ZUNhY2hlRXYK
IF9fWk5LN1dlYkNvcmUyNE1lZGlhQ29udHJvbElucHV0RWxlbWVudDIxaXNNZWRpYUNvbnRyb2xF
bGVtZW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2wyMmFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRFdgpAQCAtNzU1NCwxNCArNzU0NCwxMiBAQCBfX1pON1dlYkNvcmUy
M1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTRzdHlsZURpZENoYW5nZUVOU18xNVN0eWxlRGlmZmVy
ZW5jZUVQS05TXwogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDE3dXBkYXRl
RnJvbUVsZW1lbnRFdgogX19aTjdXZWJDb3JlMThTaGFkb3dJbnB1dEVsZW1lbnQ2Y3JlYXRlRVBO
U18xMUhUTUxFbGVtZW50RQogX19aTjdXZWJDb3JlMjVmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVs
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjVmaWxlQnV0dG9u
Q2hvb3NlRmlsZUxhYmVsRXYKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxMnZhbHVlQ2hhbmdlZEV2
CiBfX1pON1dlYkNvcmUyMkhUTUxGb3JtQ29udHJvbEVsZW1lbnQxMXNldERpc2FibGVkRWIKIF9f
Wk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wyOWNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzRXYKIF9fWk5LN1dlYkNvcmUxM0ZpbGVJbnB1dFR5cGUxMmlzRmlsZVVwbG9hZEV2
CiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTFwYWludE9iamVjdEVSTlNf
OVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjlmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJl
bEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5ZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29s
dXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk43V2ViQ29yZTExUmVuZGVyQmxvY2sxM2Fic29sdXRl
UmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFRUVpaQogX19aVGhuOF9ON1dlYkNv
cmUxOUhUTUxUZXh0QXJlYUVsZW1lbnREMEV2CkBAIC03ODE3LDEwICs3ODA1LDcgQEAgX19aTjNX
VEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIxRWRpdG9ySW50
ZXJuYWxDb21tYW5kRUVOU18KIF9fWk4zV1RGOUhhc2hUYWJsZUlOU182U3RyaW5nRVN0NHBhaXJJ
UzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVFTlNfMThQYWlyRmlyc3RFeHRy
YWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEw
SGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2bG9va3VwSVMxX05TXzIySWRlbnRpdHlI
YXNoVHJhbnNsYXRvcklTMV9TN19TQV9FRUVFUFM3X1JLVF8KIF9fWk4zV1RGOUhhc2hUYWJsZUlO
U182U3RyaW5nRVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVF
TlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2cmVoYXNo
RWkKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnNFYgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k2c2hhcmVkRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVjb250ZXh0TWVudUl0ZW1UYWdT
aG93U3Vic3RpdHV0aW9uc0ViCiBfX1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsRWIKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MzVjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbEViCiBfX1pON1dlYkNvcmVMMjJj
ZW50ZXJUcnVuY2F0ZVRvQnVmZmVyRVJLTjNXVEY2U3RyaW5nRWpqUHQKIF9fWk43V2ViQ29yZTEx
aXNUZXh0QnJlYWtFUE5TXzE3VGV4dEJyZWFrSXRlcmF0b3JFaQogX19aTjdXZWJDb3JlMTVTUUxp
dGVTdGF0ZW1lbnQ4YmluZE51bGxFaQpAQCAtMTE5NTAsNyArMTE5MzUsNiBAQCBfX1pON1dlYkNv
cmUyMmpzSFRNTENvbGxlY3Rpb25MZW5ndGhFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVF
UktOUzBfMTBJZGVudAogX19aTks3V2ViQ29yZTE3SFRNTE9iamVjdEVsZW1lbnQxOGNvbnRhaW5z
SmF2YUFwcGxldEV2CiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MzBzZXRTaG93
c01pc3NpbmdQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdtaXNzaW5nUGx1Z2luVGV4
dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3bWlzc2luZ1Bs
dWdpblRleHRFdgogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDEzcGFpbnRSZXBs
YWNlZEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVj
dDI2Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnlFaWlSTlNfOUZsb2F0UmVjdEVSTlNfNFBhdGhF
UzJfUk5TXzRGb250RVJOU183VGV4dFJ1bkVSZgogX19aTjdXZWJDb3JlNFBhdGgxNGFkZFJvdW5k
ZWRSZWN0RVJLTlNfOUZsb2F0UmVjdEVSS05TXzlGbG9hdFNpemVFCkBAIC0xMjM3MCw3ICsxMjM1
NCw2IEBAIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxOWFsdEF0dHJpYnV0ZUNoYW5nZWRFdgogX19a
TjNXVEY2U3RyaW5nMTBtYWtlU2VjdXJlRXQKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUyN3Nob3Vs
ZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZUV2CiBfX1pON1dlYkNvcmUxOWlucHV0RWxlbWVudEFsdFRl
eHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxOWlucHV0RWxl
bWVudEFsdFRleHRFdgogX19aTks3V2ViQ29yZTE3UmVuZGVyVGV4dENvbnRyb2wzNnJlcXVpcmVz
Rm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbkV2CiBfX1pON1dlYkNvcmUzMGpzSFRNTElucHV0
RWxlbWVudERlZmF1bHRWYWx1ZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8x
MElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzMmpzSFRNTElucHV0RWxlbWVudERlZmF1bHRDaGVj
a2VkRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKQEAg
LTE1MDg2LDExICsxNTA2OSw4IEBAIF9fWk43V2ViQ29yZTE3SFRNTEtleWdlbkVsZW1lbnQ2Y3Jl
YXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1CiBfX1pON1dlYkNv
cmUxN0hUTUxLZXlnZW5FbGVtZW50QzJFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVu
dEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pON1dlYkNvcmUyMGdldFN1cHBvcnRlZEtleVNp
emVzRVJOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0wRUVFCiBfX1pON1dlYkNvcmUxOGtleWdl
bk1lbnVJdGVtMjA0OEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKIF9fWk43V2ViQ29yZTE4a2V5Z2VuTWVudUl0ZW0xMDI0
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MThrZXlnZW5NZW51
SXRlbTEwMjRFdgogX19aTjdXZWJDb3JlMTdrZXlnZW5NZW51SXRlbTUxMkV2Ci1fX1pON1dlYkNv
cmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3a2V5Z2VuTWVudUl0ZW01MTJFdgogX19a
TjdXZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudEMyRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184
RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdXZWJDb3JlMTdIVE1MT3B0aW9u
RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pO
N1dlYkNvcmUxM1NlbGVjdEVsZW1lbnQxM2Rlc2VsZWN0SXRlbXNFUk5TXzE3U2VsZWN0RWxlbWVu
dERhdGFFUE5TXzdFbGVtZW50RVM0XwpAQCAtMTU1NzEsNjAgKzE1NTUxLDM0IEBAIF9fWk43V2Vi
Q29yZTExQ29udGV4dE1lbnVDMUV2CiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51QzJFdgogX19a
TjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXI4cG9wdWxhdGVFdgogX19aTjdXZWJDb3Jl
MjZjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTI2Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtFdgogX19aTjdXZWJD
b3JlMTVDb250ZXh0TWVudUl0ZW1DMUVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250
ZXh0TWVudUFjdGlvbkVSS04zV1RGNlN0cmluZ0VQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2Vi
Q29yZTE1Q29udGV4dE1lbnVJdGVtQzJFTlNfMTlDb250ZXh0TWVudUl0ZW1UeXBlRU5TXzE3Q29u
dGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFUE5TXzExQ29udGV4dE1lbnVFCiBfX1pON1dl
YkNvcmVMMzNjcmVhdGVQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb25FTlNfMTlDb250ZXh0TWVu
dUl0ZW1UeXBlRU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFYmIKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvd0V2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmtJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzNmNvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0Ns
aXBib2FyZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3
V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250
ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzN2NvbnRl
eHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2tFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2tFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4Y29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmRFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBsYXlFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2CiBfX1pON1dlYkNvcmUyN2NvbnRl
eHRNZW51SXRlbVRhZ01lZGlhTXV0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sc0V2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9sc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzY29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuRXYKIF9f
Wk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHRFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nl
YXJjaEluU3BvdGxpZ2h0RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjdjb250ZXh0
TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgogX19aTjdXZWJDb3JlMjJjb250ZXh0TWVudUl0ZW1UYWdD
b3B5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjJjb250ZXh0
TWVudUl0ZW1UYWdDb3B5RXYKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnR29CYWNr
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2tFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdHb0Zvcndh
cmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRN
ZW51SXRlbVRhZ0dvRm9yd2FyZEV2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ1N0
b3BFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRN
ZW51SXRlbVRhZ1N0b3BFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51
SXRlbVRhZ1JlbG9hZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFt
ZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUz
MmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZEV2
CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdJ
Z25vcmVTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3Bl
bGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRl
eHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVHcmFtbWFyRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyRXYKIF9fWk43V2ViQ29yZTIx
Y29udGV4dE1lbnVJdGVtVGFnQ3V0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjFjb250ZXh0TWVudUl0ZW1UYWdDdXRFdgogX19aTjdXZWJDb3JlMjNjb250ZXh0
TWVudUl0ZW1UYWdQYXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTIzY29udGV4dE1lbnVJdGVtVGFnUGFzdGVFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJl
c3VsdDE3aXNDb250ZW50RWRpdGFibGVFdgogX19aTks3V2ViQ29yZTIxQ29udGV4dE1lbnVDb250
cm9sbGVyMjFjaGVja09yRW5hYmxlSWZOZWVkZWRFUk5TXzE1Q29udGV4dE1lbnVJdGVtRQogX19a
Tks3V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtNHR5cGVFdgpAQCAtMTU2MzgsNyArMTU1OTIsNiBA
QCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTJtZWRpYUVsZW1lbnRFdgogX19aTjdXZWJD
b3JlMTVDb250ZXh0TWVudUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJv
bGxlcjIxYWRkSW5zcGVjdEVsZW1lbnRJdGVtRXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJ
dGVtVGFnSW5zcGVjdEVsZW1lbnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50RXYKIF9fWk5LN1dlYkNv
cmUxMUNvbnRleHRNZW51MTlwbGF0Zm9ybURlc2NyaXB0aW9uRXYKIF9fWk43V2ViQ29yZTExQ29u
dGV4dE1lbnUyMnNldFBsYXRmb3JtRGVzY3JpcHRpb25FUDE0TlNNdXRhYmxlQXJyYXkKIF9fWk43
V2ViQ29yZThEb2N1bWVudDIzYWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWRFUE5TXzROb2RlRQpAQCAt
MTYyMTAsMTYgKzE2MTYzLDExIEBAIF9fWk5LN1dlYkNvcmUxOFRleHRDaGVja2luZ0hlbHBlcjQw
Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZUViUmJTCiBfX1pOSzdXZWJD
b3JlMTNIaXRUZXN0UmVzdWx0MTRyZXBsYWNlZFN0cmluZ0V2CiBfX1pON1dlYkNvcmVMMjlzZWxl
Y3Rpb25Db250YWluc1Bvc3NpYmxlV29yZEVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMzBjb250
ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudUV2CiBfX1pON1dl
YkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjQwY3JlYXRlQW5kQXBwZW5kU3BlbGxpbmdBbmRH
cmFtbWFyU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRl
eHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgogX19aTjdX
ZWJDb3JlNDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmdFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k0MmNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxs
aW5nRXYKIF9fWk43V2ViQ29yZTQ2Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0
b21hdGljYWxseUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTQ2
Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseUV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMjJzcGVsbGluZ1BhbmVsSXNTaG93aW5nRXYKIF9fWk43V2ViQ29yZTE1Q29u
dGV4dE1lbnVJdGVtOHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkVkaXRv
cjI0aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkRXYKQEAgLTE2MjI3LDY2ICsxNjE3NSw0MSBAQCBf
X1pON1dlYkNvcmU2RWRpdG9yMzZpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWRF
dgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW0xMHNldFN1Yk1lbnVFUE5TXzExQ29udGV4
dE1lbnVFCiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51RDFFdgogX19aTjdXZWJDb3JlMzVjb250
ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnVF
dgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIzNWNyZWF0ZUFuZEFwcGVuZFN1
YnN0aXR1dGlvbnNTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43V2ViQ29yZTMy
Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlRXYK
IF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXNFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0
UXVvdGVzRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXNFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0RGFzaGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRM
aW5rc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRh
Z1RleHRSZXBsYWNlbWVudEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50RXYKIF9fWk43V2ViQ29yZTZF
ZGl0b3IyN3N1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZ0V2CiBfX1pON1dlYkNvcmU2RWRpdG9y
MzVpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU2RWRp
dG9yMzRpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkRXYKIF9fWk43V2ViQ29yZTZF
ZGl0b3IzMWlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRFdgogX19aTjdXZWJDb3JlNkVk
aXRvcjMzaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudUV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjM3Y3JlYXRlQW5k
QXBwZW5kVHJhbnNmb3JtYXRpb25zU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pO
N1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2VFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBl
ckNhc2VFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlRXYK
LV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0
ZW1UYWdNYWtlTG93ZXJDYXNlRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnQ2Fw
aXRhbGl6ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29u
dGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZUV2CiBfX1pON1dlYkNvcmUyNmNvbnRleHRNZW51SXRl
bVRhZ0ZvbnRNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MjZjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51
Q29udHJvbGxlcjI2Y3JlYXRlQW5kQXBwZW5kRm9udFN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJ
dGVtRQogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHNFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ1No
b3dGb250c0V2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0JvbGRFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRNZW51SXRlbVRhZ0Jv
bGRFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWNFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRlbVRhZ0l0YWxp
Y0V2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZUV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnVW5k
ZXJsaW5lRXYKIF9fWk43V2ViQ29yZTI1Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZUV2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI1Y29udGV4dE1lbnVJdGVtVGFn
T3V0bGluZUV2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1N0eWxlc0V2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9yc0V2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4dE1lbnVJdGVt
VGFnU2hvd0NvbG9yc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1l
bnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOGNvbnRleHRN
ZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xs
ZXIyOGNyZWF0ZUFuZEFwcGVuZFNwZWVjaFN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJdGVtRQog
X19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nRXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdTdGFy
dFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwY29udGV4dE1lbnVJdGVtVGFnU3RvcFNwZWFraW5n
RXYKIF9fWk43V2ViQ29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRVJLTjNXVEY2
VmVjdG9ySU5TMF82U3RyaW5nRUxtMEVFRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZ0V2CiBfX1pON1dlYkNv
cmUzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5n
RGlyZWN0aW9uTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjM4Y3Jl
YXRlQW5kQXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJdGVt
RQogX19aTjdXZWJDb3JlMzRjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uRXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzRjb250ZXh0TWVudUl0ZW1U
YWdEZWZhdWx0RGlyZWN0aW9uRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnTGVm
dFRvUmlnaHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNv
bnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJ
dGVtVGFnUmlnaHRUb0xlZnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0RXYKIF9fWk5LN1dlYkNvcmU2RWRp
dG9yMTZoYXNCaWRpU2VsZWN0aW9uRXYKIF9fWk5LN1dlYkNvcmUxM0tleWJvYXJkRXZlbnQ4Y2hh
ckNvZGVFdgogX19aTjdXZWJDb3JlMThqc0RPTVNlbGVjdGlvblR5cGVFUE4zSlNDOUV4ZWNTdGF0
ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTYyOTUsNyArMTYyMTgsNiBA
QCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJCbG9jazI0Y29udGFpbnNOb25aZXJvQmlkaUxldmVsRXYK
IF9fWk5LN1dlYkNvcmUxOUFwcGx5UHJvcGVydHlMZW5ndGhJTE5TXzEwTGVuZ3RoQXV0b0UxRUxO
U18xNUxlbmd0aEludHJpbnNpY0UxRUxOU18xOExlbmd0aE1pbkludHJpbnNpY0UxRUxOU18xMExl
bmd0aE5vbmVFMUVMTlNfMTVMZW5ndGhVbmRlZmluZWRFMUVFMTBhcHBseVZhbHVlRVBOU18xNkNT
U1N0eWxlU2VsZWN0b3JFUE5TXzhDU1NWYWx1ZUUKIF9fWk43V2ViQ29yZTExUmVuZGVyU3R5bGUx
MXNldE1heFdpZHRoRU5TXzZMZW5ndGhFCiBfX1pON1dlYkNvcmUzNmNvbnRleHRNZW51SXRlbVRh
Z0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25h
cnlFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMjZo
YXNJbnNwZWN0b3JGcm9udGVuZENsaWVudEV2CiBfX1pOSzdXZWJDb3JlMjFCYWNrRm9yd2FyZENv
bnRyb2xsZXIxOGNhbkdvQmFja09yRm9yd2FyZEVpCiBfX1pOSzdXZWJDb3JlNFBhZ2UxOGNhbkdv
QmFja09yRm9yd2FyZEVpCkBAIC0xNzA2Myw3ICsxNjk4NSw2IEBAIF9fWk43V2ViQ29yZTE0U1ZH
U01JTEVsZW1lbnQyMGRpc2Nvbm5lY3RDb25kaXRpb25zRXYKIF9fWk43V2ViQ29yZTE3U01JTFRp
bWVDb250YWluZXIxMHVuc2NoZWR1bGVFUE5TXzE0U1ZHU01JTEVsZW1lbnRFCiBfX1pOSzdXZWJD
b3JlMTdSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gxMHJlbmRlck5hbWVFdgogX19aTjdXZWJD
b3JlMjdzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb25FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kyN3NlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbkV2CiBfX1pO
N1dlYkNvcmUxNFJlbmRlclJ1YnlUZXh0QzFFUE5TXzROb2RlRQogX19aTks3V2ViQ29yZTEzUmVu
ZGVyUnVieVJ1bjExaGFzUnVieVRleHRFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyUnVieVRleHQx
MGlzUnVieVRleHRFdgpAQCAtMTg5NjksNyArMTg4OTAsNiBAQCBfX1pON1dlYkNvcmU4TG9jYXRp
b243c2V0SHJlZkVSS04zV1RGNlN0cmluZ0VQTlNfOURPTVdpbmRvd0VTNl8KIF9fWk43V2ViQ29y
ZTE3U3R5bGVQZW5kaW5nSW1hZ2UxMnJlbW92ZUNsaWVudEVQTlNfMTJSZW5kZXJPYmplY3RFCiBf
X1pON1dlYkNvcmUxNVN1Ym1pdElucHV0VHlwZTEyZGVmYXVsdFZhbHVlRXYKIF9fWk43V2ViQ29y
ZTI0c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MjRzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWxFdgogX19aTks3V2ViQ29y
ZTExUmVuZGVyVGFibGUyMGZpcnN0TGluZUJveEJhc2VsaW5lRXYKIF9fWk5LN1dlYkNvcmUxOFJl
bmRlclRhYmxlU2VjdGlvbjIwZmlyc3RMaW5lQm94QmFzZWxpbmVFdgogX19aTks3V2ViQ29yZTE1
UmVuZGVyV29yZEJyZWFrMTByZW5kZXJOYW1lRXYKQEAgLTE5NDU1LDcgKzE5Mzc1LDYgQEAgX19a
TjdXZWJDb3JlTDIyVG9wR3JhZGllbnRJbnRlcnBvbGF0ZUVQdlBLZFBkCiBfX1pON1dlYkNvcmVM
MjVCb3R0b21HcmFkaWVudEludGVycG9sYXRlRVB2UEtkUGQKIF9fWk43V2ViQ29yZTE0UmVzZXRJ
bnB1dFR5cGUxMmRlZmF1bHRWYWx1ZUV2CiBfX1pON1dlYkNvcmUyM3Jlc2V0QnV0dG9uRGVmYXVs
dExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjNyZXNl
dEJ1dHRvbkRlZmF1bHRMYWJlbEV2CiBfX1pON1dlYkNvcmUxMlVSTElucHV0VHlwZTZjcmVhdGVF
UE5TXzE2SFRNTElucHV0RWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxMlVSTElucHV0VHlwZTE1Zm9y
bUNvbnRyb2xUeXBlRXYKIF9fWk43V2ViQ29yZTE0SW5wdXRUeXBlTmFtZXMzdXJsRXYKQEAgLTI1
MjIxLDcgKzI1MTQwLDYgQEAgX19aTjdXZWJDb3JlMTNKU0V2ZW50U291cmNlRDFFdgogX19aTjdX
ZWJDb3JlMTFFdmVudFNvdXJjZUQwRXYKIF9fWk5LM0pTQzE0SlNHbG9iYWxPYmplY3QxNGlzR2xv
YmFsT2JqZWN0RXYKIF9fWk43V2ViQ29yZTIybXVsdGlwbGVGaWxlVXBsb2FkVGV4dEVqCi1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIybXVsdGlwbGVGaWxlVXBsb2Fk
VGV4dEVqCiBfX1pON1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDIyY2FsY1Zl
cnRpY2FsUHJlZldpZHRoc0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0eWxlMTVzZXRCb3hGbGV4
R3JvdXBFagogX19aTks3V2ViQ29yZTEzUmVuZGVyTGlzdEJveDEwcmVuZGVyTmFtZUV2CkBAIC0y
NTQ5OCw3ICsyNTQxNiw2IEBAIF9fWk43V2ViQ29yZTIySFRNTEZvcm1Db250cm9sRWxlbWVudDMw
dXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlRXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxJbnB1
dEVsZW1lbnQxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTks3V2ViQ29yZTlJbnB1dFR5cGUxNnZh
bHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3JlMzN2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzM3Zh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pON1dlYkNvcmUxN1ZhbGlkYXRp
b25NZXNzYWdlNmNyZWF0ZUVQTlNfMjFGb3JtQXNzb2NpYXRlZEVsZW1lbnRFCiBfX1pON1dlYkNv
cmUxN1ZhbGlkYXRpb25NZXNzYWdlMTBzZXRNZXNzYWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlNVRpbWVySU5TXzE3VmFsaWRhdGlvbk1lc3NhZ2VFRTVmaXJlZEV2CkBAIC0yNTYwOCwx
MSArMjU1MjUsOSBAQCBfX1pON1dlYkNvcmU0NHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
Rm9yQ2hlY2tib3hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNFJhZGlvSW5wdXRUeXBlMTZ2YWx1ZU1p
c3NpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdG
b3JSYWRpb1RleHRFdgogX19aTjdXZWJDb3JlMzZ2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNt
YXRjaFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNnZh
bGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2CiBfX1pOSzdXZWJDb3JlMTZIVE1M
SW5wdXRFbGVtZW50MTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNEVtYWlsSW5w
dXRUeXBlMTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dEV2CiBfX1pO
N1dlYkNvcmUzOGpzSFRNTEZpZWxkU2V0RWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBOM0pTQzlF
eGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM2
anNIVE1MS2V5Z2VuRWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMzanNIVE1MRmllbGRT
ZXRFbGVtZW50V2lsbFZhbGlkYXRlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMw
XzEwSWRlbnRpZmllckUKQEAgLTI4NjExLDcgKzI4NTI2LDYgQEAgX19aTjdXZWJDb3JlMTFGcmFt
ZUxvYWRlcjIyZmluZEZyYW1lRm9yTmF2aWdhdGlvbkVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBf
X1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIzdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3JF
UE5TXzlFeGVjU3RhdGVFCiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MzBzZXRT
aG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdjcmFzaGVkUGx1Z2lu
VGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3Y3Jhc2hl
ZFBsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMTZTY3JpcHRDb250cm9sbGVyMTFjcmVhdGVXb3Js
ZEV2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjBhZGRVc2VyU2NyaXB0VG9Xb3JsZEVQTlNfMTVE
T01XcmFwcGVyV29ybGRFUktOM1dURjZTdHJpbmdFUktOU180S1VSTEVOUzNfMTBQYXNzT3duUHRy
SU5TM182VmVjdG9ySVM0X0xtMEVFRUVFU0RfTlNfMjNVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUVO
U18yNVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dlYkNvcmUxMFVzZXJTY3JpcHRD
MkVSS04zV1RGNlN0cmluZ0VSS05TXzRLVVJMRU5TMV8xMFBhc3NPd25QdHJJTlMxXzZWZWN0b3JJ
UzJfTG0wRUVFRUVTQl9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRU5TXzI1VXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lc0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggMGEzMTMxMmQ3NzA3YWNjY2UxNzY4MGRkNjA4MzlkNmJjN2QwYzkyNi4u
NzY0YzBkNzMzNjQ3ODVlYTVkNzE4ODhhZWUxYWE2MjExMThjNDg0NiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2NTQyLDE0ICsyNjU0Miw2
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAiCi0JCQkJPgotCQkJPC9GaWxl
PgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVxEcmFnRGF0YS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAt
MjY2OTAsMTAgKzI2NjgyLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxp
emVkU3RyaW5ncy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ5MzZkMzgyOGVkN2IzMDE0
MzI0ZTdlMWJkOGE1ZWYxYmY3NTQzYjcuLmU2NDIxYjg2ZDJiOTlhNTY5MGFjNzczNTE1OWIyYjRh
NDNjNjBmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTUxNDksNyArNTE0OSw2IEBACiAJCUJDNUE4NkI2MEMzMzY3RTgwMEVF
QTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9u
LmggKi87IH07CiAJCUJDNUM3NjJBMTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI4
MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNwcCAqLzsgfTsKIAkJQkM1Qzc2MkIx
NDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0
Zm9ybUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVDRkNBODEx
Rjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzVFQjVEQjBFODFCN0VBMDBCMjU5
NjUgLyogQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNUVCNUREMEU4
MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURDMEU4MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5l
VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQzVFQjVERjBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURFMEU4MUI5
QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MzUzLDggKzUzNTIsNiBAQAogCQlCQ0Mw
NjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcgLyog
SlNDbGllbnRSZWN0LmggKi87IH07CiAJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAq
LzsgfTsKIAkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg2MEYz
Q0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJDQzM2RUI4MTM0
MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMzZFQjYxMzQyQUEzRjAw
NEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgKi87IH07Ci0JCUJDQzM2
RUI5MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzM2RUI3MTM0MkFB
M0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgfTsKIAkJQkND
NDM4NzgwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M0Mzg3NzBFODg2
Q0M3MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkND
NTczMzUwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUx
NyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUJDQzU3MzM2MEQ2OTVCQkUwMDZFRjUx
NyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZl
bnQubW0gKi87IH07CkBAIC0xMjA1Niw3ICsxMjA1Myw2IEBACiAJCUJDNUE4NkI0MEMzMzY3RTgw
MEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNET01TZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1
Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM1Q0ZDQTgxMUY3OTMzMjAwOTlFRDA5IC8qIExv
Y2FsaXphdGlvblN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Y2FsaXphdGlvblN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUVC
NURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5bGUvQm9yZGVyVmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REMwRTgxQjhERDAwQjI1OTY1IC8q
IE91dGxpbmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPdXRsaW5l
VmFsdWUuaDsgcGF0aCA9IHN0eWxlL091dGxpbmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaDsgcGF0aCA9IHN0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMjI4MSw4ICsxMjI3Nyw2IEBACiAJCUJDQzA2NTg0MEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNDbGllbnRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzA2NTg1
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVudFJlY3RMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzM2RUI2MTM0MkFBM0YwMDRCRUVG
NyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVs
ZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1NzMzMzBE
Njk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NjkwLDggKzE5Njg0LDYgQEAKIAkJ
CQlGNTg3ODY4NDAyREUzQjg2MDFFQTQxMjIgLyogQ3Vyc29yLmggKi8sCiAJCQkJQTU3MzJCMDgx
MzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCAqLywKIAkJCQlBNTczMkIwOTEz
NkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLywKLQkJCQlCQ0MzNkVCNjEzNDJB
QTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCAqLywKLQkJCQlC
Q0MzNkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
Ki8sCiAJCQkJQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLywKIAkJ
CQlBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCAqLywKIAkJCQlBN0NGQjND
RjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmNwcCAqLywKQEAgLTE5NzI1LDcgKzE5NzE3
LDYgQEAKIAkJCQlCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6ZS5oICovLAog
CQkJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgKi8sCiAJCQkJQTdB
RDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi8sCi0JCQkJQkM1Q0ZDQTgxMUY3
OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8sCiAJCQkJQzA0NkUxQUIx
MjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovLAogCQkJCTkzNTIwN0JE
MDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8sCiAJCQkJQTgyMzlERkUw
OUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovLApAQCAtMjE0MDAsNyArMjEzOTEsNiBA
QAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcgLyogRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDA2REZBNjEzNEE0REVGMDA2
RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJC
MDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwMkUxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MzA4NSw3ICsyMzA3NSw2IEBACiAJCQkJMDZFODFFRDcwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzYzM0E3MjYxM0Q4
QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0
ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTczMkIwRDEzNkExNkM0MDA1QzhEN0MgLyogTG9j
YWxpemVkRGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxNDJDNjkxMjNGMTJCMDAwRjVCRDRD
IC8qIExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3QkUwOUJENDEw
QTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3OTgs
NyArMjQ3ODcsNiBAQAogCQkJCTQxNjJBNDUwMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQTNENThFMTAxQzE1MkQwMDMx
NkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQw
NkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlCQ0MzNkVCODEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNjdFQkY1MTAyOTYy
QkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRDMxNjAyQjEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlEU1BLZXJuZWwuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkQxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYTNhNDg2MDQ5NDEyYWEwMTU0M2IyYzJkOGJjZDJiNGY2ZGFjY2U0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw5NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQotI2lmIFVTRShQTEFURk9S
TV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4K
LSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KLQotI2lmIFVTRShDRikKLSNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci0vLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3byByZWFzb25zOgotLy8gIDEp
IEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBmb3JtYXQgc3Ry
aW5nLgotLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRkIHN5bnRheC4KLS8vIE5vdGUg
dGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIgdG8g
dmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQotLy8gdHlwZSBhY2NvcmRpbmcgdG8g
c2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFyZC4KLXN0YXRpYyBTdHJpbmcg
Zm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4uLikKLXsKLSNpZiBVU0UoQ0Yp
Ci0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3RhcnQoYXJndW1lbnRzLCBmb3JtYXQp
OwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZTdHJpbmcoQWRvcHRDRiwgZm9y
bWF0LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0
KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygwLCAwLCBmb3Jt
YXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7Ci0gICAgdmFfZW5kKGFyZ3VtZW50cyk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIHZhX2xpc3Qg
YXJndW1lbnRzOwotICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKLSAgICBRU3RyaW5n
IHJlc3VsdDsKLSAgICByZXN1bHQudnNwcmludGYoZm9ybWF0LmxhdGluMSgpLmRhdGEoKSwgYXJn
dW1lbnRzKTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICByZXR1cm4gcmVzdWx0OwotI2Vs
c2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmb3JtYXQ7Ci0jZW5kaWYKLX0K
LQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKLXN0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3Vw
TWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKLXsKLSAgICBpZiAob3JpZ2luYWwuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gb3JpZ2luYWw7Ci0gICAgCi0gICAgLy8gVHJ1bmNhdGUg
dGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGgg
QXBwS2l0LgotICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3Vw
TWVudUl0ZW0gPSAyNDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMs
ICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7Ci0gICAgCi0gICAgU3RyaW5nIHRyaW1tZWQgPSBv
cmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJhY3Rl
cnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJlck9m
R3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOwotICAgIHJldHVybiBudW1iZXJPZkNo
YXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQgOiB0cmltbWVkLmxlZnQobnVt
YmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwotfQotI2VuZGlmCi0KLURlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneSYgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzaGFyZWQoKQotewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LCBkZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksICgpKTsKLSAgICByZXR1cm4gZGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5OwotfQotCi1EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkRlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneSgpCi17Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkiLCAiYWx0IHRleHQgZm9y
IDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJl
bCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwg
Zm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4
LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsCi0gICAgICAgICJ0ZXh0IHRoYXQgYXBwZWFycyBh
dCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBh
ICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9y
bXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9vc2VyIGJ1dHRv
biB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBm
aWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQg
YmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
ZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3RlZCIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9uTm9G
aWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBmaWxl
cyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1M
IGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBt
dWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+
IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotI2lmIFBMQVRGT1JN
KE1BQykKLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvcHlJbWFnZVVua25v
d25GaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVu
a25vd24gZmlsZW5hbWUiKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVu
IExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29u
dGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
T3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVu
IEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci0jaWYgUExBVEZPUk0oUVQpCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3Mg
bWVudSBpdGVtIik7Ci19Ci0jZW5kaWYKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBWaWRl
byBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2lu
ZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2lu
ZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
b3B5IFZpZGVvIEFkZHJlc3MiLCAiQ29weSBWaWRlbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJDb3B5IEF1ZGlvIEFkZHJlc3Mg
TG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENvbnRyb2xzIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdF
bnRlclZpZGVvRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkVudGVy
IEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IiwgIk1l
ZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk11dGUiLCAi
TWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIs
ICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJCYWNrIiwg
IkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1N0b3AoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIiwgIlN0b3AgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
UmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Bh
c3RlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotI2lmIFBMQVRGT1JNKEdUSykKLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiRGVsZXRlIjsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzKCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiSW5wdXQgTWV0aG9kcyI7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1VuaWNvZGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJVbmljb2Rl
IjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWxl
Y3RBbGwoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJTZWxlY3QgQWxs
IjsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
SWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGVhcm4gU3Bl
bGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2Vi
KCkKLXsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlEZWZhdWx0U2VhcmNo
UHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92
aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2Vh
cmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUgY29udGV4dCBtZW51IGl0
ZW0iKTsKLSNlbmRpZgotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3Rl
ZFN0cmluZykKLXsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIFVOVVNFRF9QQVJBTShzZWxlY3RlZFN0cmlu
Zyk7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIsICJM
b29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLSNlbHNlCi0jaWYgVVNF
KENGKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VsZWN0ZWRDRlN0cmluZyhBZG9wdENG
LCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmluZykuY3JlYXRl
Q0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCJMb29rIFVwIOKAnCVA4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBz
ZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCDigJw8c2VsZWN0aW9uPuKAnSIsICJMb29rIFVwIGNv
bnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLnJlcGxhY2UoIjxzZWxlY3Rpb24+
IiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpKTsKLSNl
bmRpZgotI2VuZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
T3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFt
bWFyKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIEdyYW1tYXIiLCAiSWdu
b3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAiU3BlbGxpbmcg
YW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVs
KGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBp
dGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNwZWxsaW5nIHdo
aWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxp
bmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFyIFdpdGggU3Bl
bGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9udCIsICJGb250
IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVW5k
ZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiUGFyYWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0aW9uIGNvbnRl
eHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlv
biBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVjdGlv
biBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJp
Z2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi0j
aWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdodCBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJTaG93IEZvbnRzIiwgIlNob3cgZm9udHMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3R5
bGVzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3R5bGVzLi4uIiwgIlN0eWxlcyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnU3BlZWNoTWVudSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWVjaCIsICJT
cGVlY2ggY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdGFydCBTcGVha2luZyIsICJTdGFydCBzcGVha2luZyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIsICJDb3JyZWN0IFNw
ZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9u
c01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJzdGl0dXRpb25zIiwgIlN1
YnN0aXR1dGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25z
KGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykgCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJTaG93IFN1YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnU21hcnRDb3B5UGFzdGUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBD
b3B5L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU21h
cnRRdW90ZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBRdW90ZXMiLCAi
U21hcnQgUXVvdGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3MgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
VGV4dFJlcGxhY2VtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVGV4dCBSZXBs
YWNlbWVudCIsICJUZXh0IFJlcGxhY2VtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
Zm9ybWF0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJUcmFuc2Zvcm1h
dGlvbnMiLCAiVHJhbnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtl
VXBwZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBVcHBlciBDYXNl
IiwgIk1ha2UgVXBwZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNl
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBMb3dlciBDYXNlIiwgIk1ha2Ug
TG93ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiQ2FwaXRhbGl6ZSIsICJDYXBpdGFsaXplIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiByZXBsYWNlZFN0cmluZzsKLX0KLQot
I2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSW5z
cGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Igb25s
eSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBm
aWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVSZWNlbnRTZWFy
Y2hlc1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMi
LCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xp
Y2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRp
dGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IkNsZWFyIFJlY2VudCBTZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJjaGVzIG1l
bnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpBWFdlYkFyZWFUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiSFRNTCBjb250ZW50IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3Igd2ViIGFyZWEiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
QVhMaW5rVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpbmsiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlzdE1hcmtlclRleHQoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJsaXN0IG1hcmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIGxpc3QgbWFya2VyIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW1h
Z2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1hZ2UgbWFwIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYSGVhZGluZ1RleHQo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGluZ3MiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0aW9uIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRlZmluaXRpb24i
LCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKLX0KLQotI2lmIFBMQVRGT1JNKE1BQykKLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3Qg
U3RyaW5nJiBhcmlhVHlwZSkKLXsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlv
bkFsZXJ0IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7Ci0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3Vw
IHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJB
UklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlh
bG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9n
LiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGEgY29uc29sZSBsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklB
QXBwbGljYXRpb25NYXJxdWVlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1
ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUu
Iik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uU3RhdHVzIikKLSAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIHN0YXR1cyIsICJBbiBBUklB
IGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgc3RhdHVzIHVwZGF0ZS4iKTsgICAg
Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25UaW1lciIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGFuIHVwZGF0aW5nIHRpbWVyLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUg
PT0gIkFSSUFEb2N1bWVudCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkb2N1bWVu
dCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgZG9jdW1lbnQu
Iik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50QXJ0aWNsZSIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBRG9jdW1lbnROb3RlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5v
dGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG5vdGUgaW4g
YSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRSZWdp
b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24gaW4gYSBkb2N1
bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtBcHBsaWNhdGlv
biIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBsaWNhdGlvbiIsICJBbiBBUklB
IGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFwcGxpY2F0aW9uLiIpOyAgICAK
LSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0Jhbm5lciIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJiYW5uZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgYWN0cyBhcyBhIGJhbm5lci4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFu
ZG1hcmtDb21wbGVtZW50YXJ5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbXBs
ZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHJl
Z2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5
cGUgPT0gIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImNvbnRlbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFp
bnMgY29udGVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtNYWlu
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1haW4iLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9ydGlvbiBvZiB0aGUgd2Vic2l0ZS4iKTsg
ICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBh
IHdlYnNpdGUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrU2VhcmNo
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlYXJjaCIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBhIHNlYXJjaCBmZWF0dXJlIG9mIGEgd2Vic2l0
ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVyZmFjZVRvb2x0aXAi
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsgICAgCi0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
dGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRo
ZSBjb250ZW50IG9mIGEgdGFiLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50
TWF0aCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLSNlbmRpZgotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIg
d2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhSYWRpb0J1dHRvbkFjdGlv
blZlcmIoKSAKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNs
aWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0
IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFzIHVzZWQgYnkgYWNj
ZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpB
WENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVu
IGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHki
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhVbmNoZWNrZWRD
aGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjaGVjayIs
ICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhbiB1bmNoZWNr
ZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTWVudUxpc3RBY3Rpb25WZXJi
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAic2VsZWN0IjsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhNZW51TGlzdFBvcHVwQWN0aW9u
VmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInNlbGVjdCI7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlua0FjdGlvblZlcmIo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3RhdGluZyB0aGUg
YWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5
IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNaXNz
aW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnaW4gaXMgbWlz
c2luZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpjcmFzaGVk
UGx1Z2luVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gRmFpbHVy
ZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3QgcHJvY2VzcyBoYXMgY3Jh
c2hlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptdWx0aXBs
ZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCi17Ci0gICAgcmV0dXJuIGZv
cm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJMYWJlbCB0byBk
ZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1cGxvYWQgY29u
dHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVzKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dW5rbm93bkZpbGVTaXplVGV4dCgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6
ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi0jaWYgUExBVEZPUk0oV0lOKQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp1cGxvYWRGaWxlVGV4dCgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInVwbG9hZCI7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmFsbEZpbGVzVGV4dCgpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gImFsbCBmaWxlcyI7Ci19Ci0KLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpi
dWlsdEluUERGUGx1Z2luTmFtZSgpCi17Ci0gICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4KLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0IGJ1aWx0LWluIFBERiIsICJQc2V1ZG8gcGx1
Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6cGRmRG9jdW1lbnRU
eXBlRGVzY3JpcHRpb24oKQotewotICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCi0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBvcnRhYmxlIERvY3VtZW50IEZvcm1hdCIsICJEZXNjcmlwdGlv
biBvZiB0aGUgKG9ubHkpIHR5cGUgc3VwcG9ydGVkIGJ5IFBERiBwc2V1ZG8gcGx1Zy1pbi4gVmlz
aWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtNTEyKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRs
ZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtMTAyNCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIjEwMjQgKE1lZGl1bSBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4g
cG9wLXVwIG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMjA0OCAo
SGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6a2V5Z2VuS2V5Y2hhaW5J
dGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBob3N0Q0ZTdHJpbmcoQWRvcHRDRiwgaG9zdC5jcmVhdGVDRlN0cmluZygpKTsKLSAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIktleSBmcm9tICVAIiwgIk5h
bWUgb2Yga2V5Y2hhaW4ga2V5IGdlbmVyYXRlZCBieSB0aGUgS0VZR0VOIHRhZyIpLCBob3N0Q0ZT
dHJpbmcuZ2V0KCkpOwotfQotCi0jaWYgUExBVEZPUk0oSU9TKQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90IGNvdW50KQot
ewotICAgIHN3aXRjaCAoY291bnQpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBtdWx0aXBs
ZT4gd2hlbiBubyA8b3B0aW9uPiBpdGVtcyBhcmUgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAg
IGNhc2UgMToKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEgSXRlbSIsICJQcmVzZW50
IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gYSBzaW5nbGUgPG9wdGlvbj4gaXMg
c2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJXp1IEl0ZW1zIiwgIlByZXNlbnQgdGhl
IG51bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9uPiBpdGVtcyBpbiBhIDxzZWxlY3QgbXVsdGlwbGU+
IGVsZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3VudCk7Ci0gICAgfQotfQotI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKLXsKLSNpZiBVU0UoQ0YpCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRv
cHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgUmV0YWluUHRyPENGTG9jYWxl
UmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsKLSAgICBSZXRhaW5Q
dHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBDRk51bWJlckZvcm1h
dHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRlckRlY2ltYWxTdHls
ZSkpOwotCi0gICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOwotICAgIFJldGFpblB0cjxD
Rk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50
VHlwZSwgJndpZHRoSW50KSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB3aWR0aFN0cmlu
ZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1iZXIoMCwgZm9y
bWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOwotCi0gICAgaW50IGhlaWdodEludCA9IHNpemUu
aGVpZ2h0KCk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQoQWRvcHRDRiwgQ0ZO
dW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkpOwotICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVy
Q3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhlaWdodC5nZXQoKSkp
OwotCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAl
QMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2Vz
IG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCks
IHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3Jl
YXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25l
IGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZT
dHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0jZW5kaWYKLSNlbHNl
Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCI8ZmlsZW5h
bWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2Ug
KHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53aWR0aCgpLCBzaXpl
LmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwotI2VuZGlmCi19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om1lZGlhRWxlbWVudExvYWRpbmdT
dGF0ZVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptZWRpYUVsZW1lbnRM
aXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2
ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNo
aW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcm
IG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAgICBp
ZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
InZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1lID09ICJNdXRl
QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0b24i
KTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxheSBi
dXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZv
ciBwYXVzZSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1
bWIiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRodW1i
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIiKTsK
LSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJSZXR1
cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVy
biB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJldHVy
biB0byByZWFsIHRpbWUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlz
cGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOwot
ICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKLSAgICBpZiAobmFtZSA9PSAiU3Rh
dHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKLSAgICBpZiAo
bmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50ZXIg
ZnVsbHNjcmVlbiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24i
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vzc2li
aWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0
IHJldmVyc2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1
dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0aW9u
cyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNhcHRp
b25zIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24i
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBi
dXR0b24iKTsKLQotICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIgc2hv
dWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5LgotICAg
IGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwot
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xF
bGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09ICJB
dWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXVkaW8gZWxlbWVu
dCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAgICBpZiAo
bmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZp
ZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9sbGVyIik7
Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG11
dGUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciB1biBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJQbGF5QnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJlZ2luIHBsYXliYWNrIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXVzZSBwbGF5
YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGF1c2UgYnV0dG9uIik7Ci0gICAg
aWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtb3Zp
ZSB0aW1lIHNjcnViYmVyIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0aW1lbGluZSBz
bGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7Ci0gICAgaWYgKG5hbWUgPT0g
IlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIG1vdmll
IGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IganVtcCBiYWNr
IDMwIHNlY29uZHMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVC
dXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHN0cmVhbWluZyBt
b3ZpZSB0byByZWFsIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHJldHVybiBz
dHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJD
dXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY3VycmVu
dCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGVs
YXBzZWQgdGltZSBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNw
bGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm51bWJlciBvZiBzZWNvbmRzIG9m
IG1vdmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcmVtYWluaW5n
IHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgc3RhdHVzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlzcGxheSIpOwotICAgIGlmIChuYW1l
ID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVr
IHF1aWNrbHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCByZXdpbmQg
YnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBmb3J3YXJkIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0g
IkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGxheSBt
b3ZpZSBpbiBmdWxsc2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGVu
dGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0
aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGFydCBkaXNwbGF5
aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Igc2hvdyBj
bG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkhpZGVDbG9zZWRDYXB0
aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdG9wIGRpc3BsYXlp
bmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBoaWRlIGNs
b3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsKLSAgICBpZiAo
IWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5kZWZpbml0
ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1lZGlh
IGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOwotCi0gICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2Fz
dDxpbnQ+KGZhYnNmKHRpbWUpKTsgCi0gICAgaW50IGRheXMgPSBzZWNvbmRzIC8gKDYwICogNjAg
KiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKLSAgICBpbnQgbWlu
dXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAlPSA2MDsKLQotICAgIGlm
IChkYXlzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJ
TkcoIiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29uZHMiLCAiYWNj
ZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+PSAx
IGRheSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7Ci0gICAgaWYgKGhvdXJzKQot
ICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQg
aG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4
dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMiKSwgaG91cnMs
IG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIGlmIChtaW51dGVzKQotICAgICAgICByZXR1cm4gZm9y
bWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgbWludXRlcyAlMiRkIHNlY29u
ZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2
YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBzZWNvbmRzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPCA2MCBzZWNv
bmRzIiksIHNlY29uZHMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVxdWly
ZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOwotfQotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUg
bm90IG1hdGNoaW5nIHR5cGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2Ug
Zm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNj
b3JkaW5nIHRvIHBhdHRlcm4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9s
IGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3Ro
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250
cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVy
Zmxvd1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBo
aWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVjdGluZyB0aGUg
c3RlcCBhdHRyaWJ1dGUiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhMjJlOWRmNTE2OTk2YTgzNzdhZWQ0YzY4OTQzMTVkZDliYWYxZWFkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneV9oCi0jZGVmaW5lIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0K
LSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2luY2x1ZGUgIkxvY2FsaXphdGlvblN0
cmF0ZWd5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5IDogcHVibGljIExv
Y2FsaXphdGlvblN0cmF0ZWd5IHsKLXB1YmxpYzoKLSAgICBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3koKTsKLQotICAgIHN0YXRpYyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kmIHNoYXJl
ZCgpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3Vi
bWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNo
b29zZUZpbGVMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0
aXBsZUZpbGVzTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2Vs
ZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0
ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQo
KTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93
bkZpbGVMYWJlbCgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1h
Z2VUb0NsaXBib2FyZCgpOwotI2lmIFBMQVRGT1JNKFFUKQotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Ci0jZW5kaWYKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdG9wKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
UmVsb2FkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKLSNpZiBQTEFURk9S
TShHVEspCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpOwotI2VuZGlmCi0jaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdyk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3BlZWNoTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1N0YXJ0U3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdG9wU3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhib29sIHNob3cpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsKLSNlbmRpZgot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3co
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xp
bmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYU11dGUoKTsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICB2
aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgQVhXZWJBcmVhVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTGlua1RleHQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEhlYWRpbmdUZXh0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCk7Ci0jaWYgUExBVEZP
Uk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3Qg
U3RyaW5nJiBhcmlhVHlwZSk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEJ1dHRvbkFj
dGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigp
OwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpOwotICAgIHZpcnR1
YWwgU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0UG9w
dXBBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY3Jhc2hlZFBsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtdWx0aXBsZUZpbGVV
cGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwotICAgIHZpcnR1YWwgU3RyaW5nIHVu
a25vd25GaWxlU2l6ZVRleHQoKTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJp
bmcgdXBsb2FkRmlsZVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBhbGxGaWxlc1RleHQoKTsK
LSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBidWlsdEluUERG
UGx1Z2luTmFtZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHBkZkRvY3VtZW50VHlwZURlc2NyaXB0
aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTEwMjQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXln
ZW5NZW51SXRlbTIwNDgoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1O
YW1lKGNvbnN0IFN0cmluZyYgaG9zdCk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwg
U3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCk7Ci0jZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBpbWFn
ZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJik7
Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0
KGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURl
c2NyaXB0aW9uKGZsb2F0KTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZh
bHVlTWlzc2luZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBh
dHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZVVuZGVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlT3ZlcmZsb3dUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KCk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2VuZGlmIC8vIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9u
U3RyYXRlZ3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZhYjc2NGI4NmFlZWNm
ZGU4MDAzOGY1ZDJmMzI5MTdmNTI4ZjlkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJh
dGVneS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDEwIElnYWxpYSBTLkwKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMb2NhbGl6YXRpb25TdHJhdGVn
eV9oCi0jZGVmaW5lIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLQotI2lmIFVTRShQTEFURk9STV9T
VFJBVEVHSUVTKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBJbnRTaXplOwotCi1jbGFzcyBMb2NhbGl6YXRpb25TdHJhdGVneSB7Ci1w
dWJsaWM6ICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSA9IDA7Ci0KLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpID0g
MDsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5l
d1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZEltYWdlVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkgPSAwOwotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpID0gMDsKLSNlbmRpZgotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDdXQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnUGFzdGUoKSA9IDA7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0RlbGV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVW5pY29kZSgpID0gMDsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSA9IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBz
ZWxlY3RlZFN0cmluZykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ln
bm9yZUdyYW1tYXIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkg
PSAwOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTaG93Rm9udHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3R5bGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1Nob3dDb2xvcnMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3BlZWNoTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdGFydFNwZWFraW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1N0b3BTcGVha2luZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJvb2wgc2hvdykg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3Rl
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVz
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVz
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3Mo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2Vt
ZW50KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9y
bWF0aW9uc01lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWFrZVVwcGVyQ2FzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNYWtlTG93ZXJDYXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NhcGl0YWxpemUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKSA9IDA7Ci0jZW5kaWYK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRv
dygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9J
bk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVu
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgp
ID0gMDsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLQotICAgIHZpcnR1YWwgU3Ry
aW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLQotICAgIHZpcnR1
YWwgU3RyaW5nIEFYV2ViQXJlYVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5r
VGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYSGVhZGluZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9u
TGlzdFRlcm1UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0
cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpID0gMDsK
LSNlbmRpZgotICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFY
TWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5r
QWN0aW9uVmVyYigpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVtYmVyT2ZG
aWxlcykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKSA9IDA7
Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJpbmcgdXBsb2FkRmlsZVRleHQo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWxsRmlsZXNUZXh0KCkgPSAwOwotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgYnVpbHRJblBERlBsdWdpbk5h
bWUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24o
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGtleWdlbk1lbnVJdGVtMjA0OCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5L
ZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkgPSAwOwotI2VuZGlmCi0KLSAgICB2
aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IElu
dFNpemUmIHNpemUpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxlbWVudExvYWRp
bmdTdGF0ZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJy
b2FkY2FzdFN0YXRlVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJikg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZs
b2F0KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UGF0dGVybk1pc21hdGNoVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVRvb0xvbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0g
ICAgdmlydHVhbCB+TG9jYWxpemF0aW9uU3RyYXRlZ3koKQotICAgIHsKLSAgICB9Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lF
UykKLQotI2VuZGlmIC8vIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMTQwOWJiZjMxYjFhYjJlM2I3NGVl
MzQwNTdiNjRlN2U4MGJjZGUwYy4uYTUxNDNhY2NiMTY5MTEzZTMwZjQ1NWY3ZDlmYWRmMmExZDU4
NTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNiwgMjAwOSwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAt
MjcsNzExICsyNyw5MjkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIK
ICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2lmIFVTRShDRikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYKKyNpbmNsdWRl
IDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgorCisjaWYgUExBVEZPUk0oTUFDKQorI2lu
Y2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKKy8vIFdlIGNhbid0IHVzZSBT
dHJpbmc6OmZvcm1hdCBmb3IgdHdvIHJlYXNvbnM6CisvLyAgMSkgSXQgZG9lc24ndCBoYW5kbGUg
bm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gdGhlIGZvcm1hdCBzdHJpbmcuCisvLyAgMikgSXQgZG9l
c24ndCBoYW5kbGUgdGhlICUyJGQgc3ludGF4LgorLy8gTm90ZSB0aGF0IGJlY2F1c2UgfGZvcm1h
dHwgaXMgdXNlZCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byB2YV9zdGFydCwgaXQgY2Fubm90
IGJlIGEgcmVmZXJlbmNlCisvLyB0eXBlIGFjY29yZGluZyB0byBzZWN0aW9uIDE4LjcvMyBvZiB0
aGUgQysrIE4xOTA1IHN0YW5kYXJkLgorc3RhdGljIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJp
bmcoU3RyaW5nIGZvcm1hdCwgLi4uKQoreworI2lmIFVTRShDRikKKyAgICB2YV9saXN0IGFyZ3Vt
ZW50czsKKyAgICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7CisgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBmb3JtYXRDRlN0cmluZyhBZG9wdENGLCBmb3JtYXQuY3JlYXRlQ0ZTdHJpbmco
KSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQoQWRvcHRDRiwgQ0ZTdHJpbmdD
cmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdENGU3RyaW5nLmdldCgpLCBh
cmd1bWVudHMpKTsKKyAgICB2YV9lbmQoYXJndW1lbnRzKTsKKyAgICByZXR1cm4gcmVzdWx0Lmdl
dCgpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmb3JtYXQ7Cisj
ZW5kaWYKK30KIAotc3RhdGljIGlubGluZSBMb2NhbGl6YXRpb25TdHJhdGVneSogbG9jYWxpemF0
aW9uU3RyYXRlZ3koKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKK3N0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3Ry
aW5nRm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKIHsKLSAgICBpZiAo
aGFzUGxhdGZvcm1TdHJhdGVnaWVzKCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKKyAgICBpZiAob3JpZ2luYWwuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gb3JpZ2luYWw7CiAKLSAgICByZXR1cm4gJkRlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6c2hhcmVkKCk7CisgICAgLy8gVHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBp
dCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGggQXBwS2l0LgorICAgIHVu
c2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0gPSAyNDsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMsICgmaG9yaXpvbnRhbEVs
bGlwc2lzLCAxKSk7CisKKyAgICBTdHJpbmcgdHJpbW1lZCA9IG9yaWdpbmFsLnN0cmlwV2hpdGVT
cGFjZSgpOworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVycyA9IG51bUNoYXJhY3RlcnNJ
bkdyYXBoZW1lQ2x1c3RlcnModHJpbW1lZCwgbWF4TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5M
b29rdXBNZW51SXRlbSk7CisgICAgcmV0dXJuIG51bWJlck9mQ2hhcmFjdGVycyA9PSB0cmltbWVk
Lmxlbmd0aCgpID8gdHJpbW1lZCA6IHRyaW1tZWQubGVmdChudW1iZXJPZkNoYXJhY3RlcnMpICsg
ZWxsaXBzaXM7CiB9CisjZW5kaWYKIAogU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5pbnB1dEVsZW1lbnRBbHRUZXh0KCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBl
bGVtZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0
bGUsIG9yIHZhbHVlIik7CiB9CiAKIFN0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwg
Zm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAKIFN0cmluZyBz
ZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5zZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3
b3JkczogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dCB0aGF0IGFwcGVhcnMgYXQg
dGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0gb2YgYSAn
c2VhcmNoYWJsZSBpbmRleCciKTsKIH0KIAogU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJl
bCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnN1Ym1pdEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVs
dCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAK
IFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBj
aG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKIH0KIAogU3RyaW5nIGZpbGVCdXR0
b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5maWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBm
aWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQg
YmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7CiB9CiAKIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZp
bGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Im5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQg
aW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKIH0KIAogU3RyaW5nIGZp
bGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
ZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVk
IGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwog
fQogCiBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFp
bHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKIH0KIAogI2lmIFBMQVRG
T1JNKE1BQykKIFN0cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVua25vd24gZmlsZW5hbWUiKTsK
IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBp
biBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlu
a2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3Bl
biBJbWFnZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFn
ZVRvRGlzaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiRG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBJbWFn
ZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKLSNpZiBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCi1TdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgp
OwotfQotI2VuZGlmCi0KIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dp
bmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Ik9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdD
b3B5KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnR29CYWNr
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3
YXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZvcndhcmQiLCAiRm9yd2FyZCBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0
b3AoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RvcCIsICJTdG9wIGNvbnRleHQgbWVu
dSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ3V0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogI2lmIFBMQVRGT1JNKFFUKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1NlbGVjdEFsbCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJTZWxlY3Qg
QWxsIjsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91
bmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyBHdWVz
c2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAog
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBT
cGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTGVhcm5TcGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFy
Y2hJblNwb3RsaWdodCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdodCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFy
Y2hXZWIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTZWFyY2hXZWIoKTsKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0Nv
cHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICByZXR1cm4gZm9ybWF0
TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3
aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUg
aW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKKyNlbHNlCisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0xvb2tV
cEluRGljdGlvbmFyeShzZWxlY3RlZFN0cmluZyk7CisjaWYgZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBVTlVTRURf
UEFSQU0oc2VsZWN0ZWRTdHJpbmcpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVw
IGluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVt
Iik7CisjZWxzZQorI2lmIFVTRShDRikKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlbGVj
dGVkQ0ZTdHJpbmcoQWRvcHRDRiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2Vs
ZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiTG9vayBVcCDigJwlQOKAnSIsICJMb29rIFVwIGNvbnRl
eHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLCBzZWxlY3RlZENGU3RyaW5nLmdldCgp
KTsKKyNlbHNlCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCcPHNlbGVjdGlv
bj7igJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQiKS5y
ZXBsYWNlKCI8c2VsZWN0aW9uPiIsIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKHNl
bGVjdGVkU3RyaW5nKSk7CisjZW5kaWYKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkxpbmsoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJP
cGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJZ25vcmUgR3JhbW1hciBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdN
ZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnU3BlbGxpbmdNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWxsaW5n
IGFuZCBHcmFtbWFyIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9v
bCBzaG93KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChzaG93KTsKKyAgICBpZiAoc2hvdykKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBp
dGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5k
IEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDaGVja1NwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcgd2hp
bGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5n
IiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7
CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0Zv
bnRzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnU2hvd0ZvbnRzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgRm9udHMi
LCAiU2hvdyBmb250cyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0l0YWxpYygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJ
dGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0eWxlcy4uLiIsICJTdHlsZXMg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dD
b2xvcnMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTaG93Q29sb3JzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgQ29s
b3JzIiwgIlNob3cgY29sb3JzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTcGVlY2giLCAiU3BlZWNoIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RhcnQgU3BlYWtpbmciLCAiU3RhcnQgc3Bl
YWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1N0b3BTcGVha2luZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
ICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXJh
Z3JhcGggRGlyZWN0aW9uIiwgIlBhcmFncmFwaCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1RleHREaXJlY3Rpb25NZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlv
biBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEZWZh
dWx0RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVm
YXVsdCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmlnaHQgdG8gTGVmdCIs
ICJSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShN
QUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNh
bGx5KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkiLCAiQ29ycmVjdCBTcGVsbGlu
ZyBBdXRvbWF0aWNhbGx5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAiU3Vic3RpdHV0aW9ucyBjb250
ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
dWJzdGl0dXRpb25zKGJvb2wgc2hvdykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoc2hvdyk7CisgICAgaWYg
KHNob3cpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFN1YnN0aXR1dGlvbnMi
LCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vi
c3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiU21hcnQgQ29weS9QYXN0ZSIsICJTbWFydCBDb3B5L1Bhc3RlIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3Rlcygp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1NtYXJ0UXVvdGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0IFF1b3RlcyIs
ICJTbWFydCBRdW90ZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250ZXh0IG1lbnUgaXRlbSIp
OwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcygpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3Mo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3Mg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHRS
ZXBsYWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJUZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFjZW1lbnQgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdU
cmFuc2Zvcm1hdGlvbnNNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRyYW5zZm9y
bWF0aW9ucyIsICJUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVyIENhc2UiLCAiTWFrZSBVcHBl
ciBDYXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNYWtlTG93ZXJDYXNlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNlIGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6
ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDYXBpdGFsaXplIiwgIkNhcGl0YWxpemUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5n
ZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhyZXBsYWNlZFN0
cmluZyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVwbGFjZWRTdHJpbmc7
CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVv
IGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93IiwgIk9w
ZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlu
a1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRk
cmVzcyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
b3B5IEF1ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJDb250cm9scyIsICJNZWRpYSBDb250cm9scyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJFbnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBsYXkg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwg
Ik1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAgICAgCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAiSW5zcGVjdCBFbGVt
ZW50IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKIAogU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVz
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyByZWNlbnQgc2VhcmNoZXMiLCAi
TGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9u
IHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBiZWVuIHBlcmZv
cm1lZCIpOwogfQogCi1TdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCAoKQorU3Ry
aW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0ICgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0
ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBm
aWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7CiB9CiAKIFN0cmluZyBz
ZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVzIiwgIm1lbnUgaXRl
bSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdzIGNvbnRlbnRzIik7
CiB9CiAKIFN0cmluZyBBWFdlYkFyZWFUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+QVhXZWJBcmVhVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJI
VE1MIGNvbnRlbnQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB3ZWIgYXJl
YSIpOwogfQogCiBTdHJpbmcgQVhMaW5rVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPkFYTGlua1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygibGlu
ayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpbmsiKTsKIH0KIAogU3Ry
aW5nIEFYTGlzdE1hcmtlclRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5BWExpc3RNYXJrZXJUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpc3Qg
bWFya2VyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbGlzdCBtYXJrZXIi
KTsKIH0KIAogU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+QVhJbWFnZU1hcFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1hZ2Ug
bWFwIik7CiB9CiAKIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+QVhIZWFkaW5nVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGlu
Z3MiKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJtIiwgInRlcm0gd29yZCBvZiBhIGRlZmluaXRp
b24iKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3REZWZpbml0
aW9uVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkZWZpbml0aW9uIiwgImRlZmlu
aXRpb24gcGhyYXNlIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgQVhBUklBQ29u
dGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5BWEFSSUFDb250ZW50R3JvdXBUZXh0KGFyaWFUeXBlKTsKKyAg
ICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0IikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGFjdHMgYXMgYW4gYWxlcnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRp
b25BbGVydERpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCBkaWFs
b2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBk
aWFsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9nLiIpOworICAgIGlmIChhcmlhVHlwZSA9
PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxv
ZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgY29uc29sZSBs
b2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25NYXJxdWVlIikKKyAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUuIik7CisgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
YXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxp
Y2F0aW9uVGltZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZXIiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiB1cGRhdGluZyB0aW1lci4i
KTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhh
dCBhY3RzIGFzIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1l
bnRBcnRpY2xlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFydGljbGUiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhcnRpY2xlLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50Tm90ZSIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJub3RlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMg
YXMgYSBub3RlIGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9j
dW1lbnRSZWdpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24g
aW4gYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0FwcGxp
Y2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXBwbGljYXRpb24uIik7
CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtCYW5uZXIiKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiYmFubmVyIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGFjdHMgYXMgYSBiYW5uZXIuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1h
cmtDb21wbGVtZW50YXJ5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbXBsZW1l
bnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHJlZ2lv
biBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAi
QVJJQUxhbmRtYXJrQ29udGVudEluZm8iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
Y29udGVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBjb250
ZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrTWFpbiIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYWluIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91
cCB0aGF0IGlzIHRoZSBtYWluIHBvcnRpb24gb2YgdGhlIHdlYnNpdGUuIik7CisgICAgaWYgKGFy
aWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQg
Y29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBhIHdlYnNpdGUuIik7Cisg
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGNvbnRhaW5zIGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOworICAgIGlmIChhcmlh
VHlwZSA9PSAiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInRvb2x0aXAiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0
cyBhcyBhIHRvb2x0aXAuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNz
aWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRh
aW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KICNl
bmRpZgogICAgIAogU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQnV0dG9uQWN0aW9uVmVyYigpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwg
b2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHki
KTsKIH0KIAogU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRo
YXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkg
YWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhUZXh0RmllbGRBY3Rpb25WZXJi
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRlIiwgIlZlcmIgc3RhdGluZyB0
aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVsZCBpcyBzZWxlY3RlZCwg
YXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWENoZWNrZWRDaGVja0Jv
eEFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWENo
ZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5j
aGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGNo
ZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9
CiAKIFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0
aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2Vk
LCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYTGlua0FjdGlvblZl
cmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWExpbmtBY3Rpb25W
ZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRo
ZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQg
YnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVy
YigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTWVudUxpc3RQb3B1
cEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0
IjsKIH0KIAogU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0IjsKIH0KIAogU3RyaW5nIG1pc3NpbmdQbHVn
aW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWlzc2luZ1Bs
dWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWlzc2luZyBQbHVnLWluIiwg
IkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3NpbmciKTsKIH0KIAog
U3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y3Jhc2hlZFBsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
UGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCBpZiBwbHVnaW4gaG9zdCBw
cm9jZXNzIGhhcyBjcmFzaGVkIik7CiB9CiAKIFN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0
KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPm11bHRpcGxlRmlsZVVwbG9hZFRleHQobnVtYmVyT2ZGaWxlcyk7CisgICAgcmV0dXJu
IGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJMYWJlbCB0
byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1cGxvYWQg
Y29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVzKTsKIH0K
IAogU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT51bmtub3duRmlsZVNpemVUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3Rpbmcg
aXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oV0lOKQogU3RyaW5nIHVwbG9hZEZpbGVUZXh0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dXBsb2FkRmlsZVRleHQoKTsK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAidXBsb2FkIjsKIH0KIAogU3RyaW5n
IGFsbEZpbGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmFs
bEZpbGVzVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJhbGwgZmls
ZXMiOwogfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgYnVpbHRJblBERlBs
dWdpbk5hbWUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5idWlsdElu
UERGUGx1Z2luTmFtZSgpOworICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIldlYktpdCBidWlsdC1pbiBQREYiLCAiUHNldWRvIHBsdWctaW4gbmFt
ZSwgdmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7CiB9CiAK
IFN0cmluZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPnBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uKCk7CisgICAgLy8g
QWxzbyBleHBvc2VkIHRvIERPTS4KKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUG9ydGFibGUg
RG9jdW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkgdHlwZSBzdXBwb3J0
ZWQgYnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBw
YWdlIGluIFNhZmFyaS4iKTsKIH0KIAogU3RyaW5nIGtleWdlbk1lbnVJdGVtNTEyKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0ZW01MTIoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRs
ZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5NZW51SXRlbTEw
MjQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXlnZW5NZW51SXRl
bTEwMjQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAyNCAoTWVkaXVtIEdyYWRlKSIs
ICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwogfQogCiBTdHJpbmcg
a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+a2V5Z2VuTWVudUl0ZW0yMDQ4KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjIwNDgg
KEhpZ2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7
CiB9CiAKIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuS2V5Y2hhaW5JdGVt
TmFtZShob3N0KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRlN0cmluZyhBZG9w
dENGLCBob3N0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBrZXljaGFpbiBrZXkg
Z2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0cmluZy5nZXQoKSk7CiB9CiAK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0
ZW1zKHNpemVfdCBjb3VudCkKK3sKKyAgICBzd2l0Y2ggKGNvdW50KSB7CisgICAgY2FzZSAwOgor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMCBJdGVtcyIsICJQcmVzZW50IHRoZSBlbGVt
ZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gbm8gPG9wdGlvbj4gaXRlbXMgYXJlIHNlbGVjdGVk
IChpT1Mgb25seSkiKTsKKyAgICBjYXNlIDE6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCIxIEl0ZW0iLCAiUHJlc2VudCB0aGUgZWxlbWVudCA8c2VsZWN0IG11bHRpcGxlPiB3aGVuIGEg
c2luZ2xlIDxvcHRpb24+IGlzIHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiV6dSBJ
dGVtcyIsICJQcmVzZW50IHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgPG9wdGlvbj4gaXRlbXMgaW4g
YSA8c2VsZWN0IG11bHRpcGxlPiBlbGVtZW50IChpT1Mgb25seSkiKSwgY291bnQpOworICAgIH0K
K30KKyNlbmRpZgorCiBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBj
b25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5pbWFnZVRpdGxlKGZpbGVuYW1lLCBzaXplKTsKKyNpZiBVU0UoQ0YpCisjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1l
Q0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgUmV0YWlu
UHRyPENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsK
KyAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBD
Rk51bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRl
ckRlY2ltYWxTdHlsZSkpOworCisgICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOworICAg
IFJldGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwg
a0NGTnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiB3aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhO
dW1iZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOworCisgICAgaW50IGhlaWdo
dEludCA9IHNpemUuaGVpZ2h0KCk7CisgICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQo
QWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkp
OworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVt
YmVyRm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhl
aWdodC5nZXQoKSkpOworCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25l
IGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZT
dHJpbmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOworI2Vs
c2UKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwg
ZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0
cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3Ig
YSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiks
IGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Cisj
ZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5k
YWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwor
I2VuZGlmCiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRl
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwgIk1lZGlhIGNv
bnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOwogfQog
CiBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0
ZVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVk
aWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNh
c3QiKTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29u
c3QgU3RyaW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb250cm9sTmFt
ZSk7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0eSByb2xl
IGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAgICBpZiAobmFt
ZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZpZGVv
IGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9u
IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11
dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0b24iKTsKKyAg
ICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxheSBidXR0b24i
KTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBwYXVz
ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciB0aW1lbGluZSBzbGlkZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRodW1iIiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIiKTsKKyAgICBp
ZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNl
ZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVybiB0byBy
ZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJldHVybiB0byBy
ZWFsIHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlm
IChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlz
cGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKKyAgICBpZiAobmFtZSA9
PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmdWxs
c2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50ZXIgZnVsbHNj
cmVlbiBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAgIGlmIChuYW1l
ID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmYXN0
IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0IHJldmVy
c2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0aW9ucyIsICJh
Y2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1
dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24i
KTsKKworICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIgc2hvdWxkIG5l
dmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5LgorICAgIGlmIChu
YW1lID09ICJDb250cm9sc1BhbmVsIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcg
bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgY29udHJv
bE5hbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0
IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnRyb2xOYW1lKTsKKyAgICBpZiAo
bmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImF1
ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIik7
CisgICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxh
eSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29u
dHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIGF1ZGlvIHRyYWNrcyIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9
PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiZWdpbiBwbGF5
YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxheSBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cGF1c2UgcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHBhdXNlIGJ1dHRv
biIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
dGltZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiYWNj
ZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0aHVtYiIpOworICAgIGlm
IChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
c2VlayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IGp1bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5U
b1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVybiBz
dHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciByZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImN1cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVt
YWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJudW1iZXIgb2Yg
c2Vjb25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IHJlbWFpbmluZyB0aW1lIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxh
eSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50IG1vdmllIHN0YXR1cyIs
ICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3RhdHVzIGRpc3BsYXkiKTsKKyAg
ICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygic2VlayBxdWlja2x5IGJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGZh
c3QgcmV3aW5kIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJh
Y2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAgIGlm
IChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTaG93
Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3Rh
cnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQg
Zm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRl
Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3Rv
cCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5sb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsKKyAgICBpZiAoIWlz
ZmluaXRlKHRpbWUpKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5kZWZpbml0ZSB0
aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1lZGlhIGNv
bnRyb2xsZXIgdGltZSB2YWx1ZSIpOworCisgICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2FzdDxp
bnQ+KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0
KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVz
ID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRh
eXMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygi
JTEkZCBkYXlzICUyJGQgaG91cnMgJTMkZCBtaW51dGVzICU0JGQgc2Vjb25kcyIsICJhY2Nlc3Np
YmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDEgZGF5
IiksIGRheXMsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAoaG91cnMpCisgICAg
ICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBob3Vy
cyAlMiRkIG1pbnV0ZXMgJTMkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgbWludXRlcyIpLCBob3VycywgbWlu
dXRlcywgc2Vjb25kcyk7CisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBtaW51dGVzICUyJGQgc2Vjb25kcyIs
ICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVl
ID49IDYwIHNlY29uZHMiKSwgbWludXRlcywgc2Vjb25kcyk7CisgICAgcmV0dXJuIGZvcm1hdExv
Y2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA8IDYwIHNlY29uZHMi
KSwgc2Vjb25kcyk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1Rl
eHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidmFsdWUg
bWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29udHJvbCBl
bGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JGaWxlVGV4dCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0K
IAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4
dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
Rm9yUmFkaW9UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VW
YWx1ZU1pc3NpbmdGb3JTZWxlY3RUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZv
ciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOwog
fQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvck11
bHRpcGxlRW1haWxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBt
ZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFpbmVkIHZh
bHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KGludCwgaW50KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT52YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVs
ZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIik7
CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBT
dHJpbmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9u
TWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJy
YW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKTsKIH0KIAogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92
ZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBo
aWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoKTsKLX0KLQotI2VuZGlmIC8vIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQotCi0j
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikKLVN0cmluZyBsb2NhbGl6ZWRTdHJp
bmcoY29uc3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwg
c3RybGVuKGtleSkpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5v
dCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
aAppbmRleCBhNzNjOTkxZmVkYTk3ZWU5OWI5YWZlMjg3YzVjNjBiNjMxYTczNTJhLi41MzJlYTFj
N2JlMTMwMDljODI5NjdkYjgyMGM3NmQ0Nzc3ZTJiMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xNzQsNiArMTc0LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcm
IGhvc3QpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgU3RyaW5nIGh0bWxTZWxl
Y3RNdWx0aXBsZUl0ZW1zKHNpemVfdCBudW0pOworI2VuZGlmCisKICAgICBTdHJpbmcgaW1hZ2VU
aXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKTsKIAogICAg
IFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7CkBAIC0xOTgsMTEgKzIwMiwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKTsKICAgICBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFzZSwgY29uc3QgU3Ry
aW5nJiBzdGVwKTsKIAotCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCiAjZGVm
aW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5nLCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVk
U3RyaW5nKHN0cmluZykKICNkZWZpbmUgV0VCX1VJX1NUUklOR19LRVkoc3RyaW5nLCBrZXksIGRl
c2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoa2V5KQogCiAgICAgU3RyaW5nIGxv
Y2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oV0lOKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGRjOWZjMzVhNzBl
OTNjZTY0MzlmN2JhNzMzZjQ0ZDNkMjc2M2M3NGEuLjY0M2YzNzUwNThlY2I4MzBiYjU3ZDUwZTky
Y2RkNjU5MDNiMTYyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcApAQCAtMjksOCArMjksNiBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUGxhdGZvcm1TdHJhdGVnaWVzKiBzX3BsYXRm
b3JtU3RyYXRlZ2llczsKQEAgLTU5LDExICs1Nyw2IEBAIGJvb2wgaGFzUGxhdGZvcm1TdHJhdGVn
aWVzKCkKICAgICByZXR1cm4gc19wbGF0Zm9ybVN0cmF0ZWdpZXM7CiB9CiAKLUxvY2FsaXphdGlv
blN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5
KCkKLXsKLSAgICByZXR1cm4gbmV3IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJ
RVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4
IDc0ODJkNjAwNWZmMDYzZDY1ZmMwNzdmYmI4YWExZDRkMTVkY2IzN2IuLjE0ZThjNGNmZTYwN2Ez
NzEyZjM2MTU3OTIxODE4OTMyYThiNGQ4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zMiw3ICszMiw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ29va2llc1N0cmF0ZWd5OwogY2xhc3MgUGx1Z2luU3RyYXRlZ3k7Ci1jbGFz
cyBMb2NhbGl6YXRpb25TdHJhdGVneTsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RyYXRlZ3k7CiAKIGNs
YXNzIFBsYXRmb3JtU3RyYXRlZ2llcyB7CkBAIC01MSwxMyArNTAsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX3BsdWdpblN0cmF0ZWd5OwogICAgIH0KIAotICAgIExvY2FsaXphdGlvblN0
cmF0ZWd5KiBsb2NhbGl6YXRpb25TdHJhdGVneSgpCi0gICAgewotICAgICAgICBpZiAoIW1fbG9j
YWxpemF0aW9uU3RyYXRlZ3kpCi0gICAgICAgICAgICBtX2xvY2FsaXphdGlvblN0cmF0ZWd5ID0g
Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKLSAgICAgICAgcmV0dXJuIG1fbG9jYWxpemF0
aW9uU3RyYXRlZ3k7Ci0gICAgfQotCiAgICAgVmlzaXRlZExpbmtTdHJhdGVneSogdmlzaXRlZExp
bmtTdHJhdGVneSgpCiAgICAgewogICAgICAgICBpZiAoIW1fdmlzaXRlZExpbmtTdHJhdGVneSkK
QEAgLTY5LDcgKzYxLDYgQEAgcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtU3RyYXRlZ2llcygpCiAg
ICAgICAgIDogbV9jb29raWVzU3RyYXRlZ3koMCkKICAgICAgICAgLCBtX3BsdWdpblN0cmF0ZWd5
KDApCi0gICAgICAgICwgbV9sb2NhbGl6YXRpb25TdHJhdGVneSgwKQogICAgICAgICAsIG1fdmlz
aXRlZExpbmtTdHJhdGVneSgwKQogICAgIHsKICAgICB9CkBAIC04MSwxMiArNzIsMTAgQEAgcHJv
dGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIENvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29v
a2llc1N0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBs
dWdpblN0cmF0ZWd5KCkgPSAwOwotICAgIHZpcnR1YWwgTG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNy
ZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBWaXNpdGVkTGlua1N0cmF0
ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkgPSAwOwogCiAgICAgQ29va2llc1N0cmF0
ZWd5KiBtX2Nvb2tpZXNTdHJhdGVneTsKICAgICBQbHVnaW5TdHJhdGVneSogbV9wbHVnaW5TdHJh
dGVneTsKLSAgICBMb2NhbGl6YXRpb25TdHJhdGVneSogbV9sb2NhbGl6YXRpb25TdHJhdGVneTsK
ICAgICBWaXNpdGVkTGlua1N0cmF0ZWd5KiBtX3Zpc2l0ZWRMaW5rU3RyYXRlZ3k7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0Vm
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHAKaW5kZXggMjcyNDBlODJiNTgxNGM0NWFiZDA1Y2JiNWMyZWU2ZTAyYTM3MTFhYS4uYzRhODJm
YTY2ZGY0Mzc4M2RhNDIwYjYzNzE2NmZmY2Q1MDVlN2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNTU1LDkgKzU1
NSw0IEBAIFN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoInBsdWdpbiBjcmFzaGVkIik7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29u
c3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwgc3RybGVu
KGtleSkpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
TG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9j
YWxpemVkU3RyaW5nc0d0ay5jcHAKaW5kZXggMDdiZWQ4ZGIzZTkwZWU2ZDI1MzlhNzVlZDJlMmJk
MzI1ZmU5NzM2Yy4uZmVmMzE3YzdmZTM2YTg0YzAzOTQwOWMyZmMwZGYyODg1ZjU4ZWVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcApAQCAtNjUyLDkgKzY1Miw0IEBAIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKICAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJzdGVwIG1pc21hdGNoIikpOwogfQogCi1TdHJpbmcgbG9jYWxpemVkU3Ry
aW5nKGNvbnN0IGNoYXIqIGtleSkKLXsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChrZXks
IHN0cmxlbihrZXkpKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVmMzNhOTVkMzBiYzMxYjcxYzA0
Y2JiYmY1YjFmNWI2YjEwZjg5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKQEAgLTAsMCArMSw2MzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgU3RhaWtvcyBDb21wdXRpbmcgU2VydmljZXMgSW5jLiA8aW5m
b0BzdGFpa29zLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJv
cmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJ
TmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKworI2luY2x1ZGUgIklu
dFNpemUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBpbnB1dEVsZW1lbnRB
bHRUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSBhbHQgdGV4dCBmb3IgPGlu
cHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Cit9CisKK1N0cmlu
ZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVz
ZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30KKworU3RyaW5nIHNlYXJjaGFi
bGVJbmRleEludHJvZHVjdGlvbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNl
YXJjaCBrZXl3b3JkczogIiwgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBuZWFy
bHktb2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgn
Iik7Cit9CisKK1N0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJkZWZh
dWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30K
KworU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlIiwgInRpdGxl
IGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIpOwor
fQorCitTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZp
bGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNlZCBpbiBI
VE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4iKTsK
K30KKworU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlIHNlbGVj
dGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMg
d2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxl
c1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBm
aWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0ZWQg
YW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7Cit9
CisKK1N0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZXRhaWxzIiwgInRleHQgdG8g
ZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1tYXJ5PiBjaGlsZCIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3Bl
biBpbiBOZXcgV2luZG93IiwgIk9wZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZl
IExpbmsuLi4iLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgTGlu
ayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEltYWdlIiwgIk9wZW4gSW1hZ2Ug
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBJbWFnZSIsICJEb3dubG9hZCBJbWFn
ZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgSW1hZ2UiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBi
b2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiQ29weSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJP
cGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gQXVkaW8iLCAiT3BlbiBB
dWRpbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8iLCAiQ29weSBWaWRlbyBMaW5rIExvY2F0
aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNvcHkgQXVkaW8iLCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29udHJv
bHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBs
YXliYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNj
cmVlbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXkiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIiwgIlBhdXNl
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUiLCAiTXV0
ZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3co
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
Ik9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IiwgIkNvcHkgY29u
dGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
R28gQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEZvcndhcmQiLCAiRm9yd2FyZCBjb250ZXh0IG1lbnUg
aXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RvcCIsICJTdG9w
IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0N1dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3V0IiwgIkN1dCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhc3RlIiwgIlBhc3RlIGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNl
bGVjdCBBbGwiLCAiU2VsZWN0IEFsbCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8g
R3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgU3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxp
bmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkFkZCBUbyBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlYXJjaCBUaGUg
V2ViIiwgIlNlYXJjaCBUaGUgV2ViIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb29rIFVw
IEluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5rIiwg
Ik9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnSWdub3JlR3JhbW1hcigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNw
ZWxsaW5nIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93
KQoreworICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpIDoK
KyAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIiwg
IkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxl
IFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGlu
ZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVs
bGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Rm9udE1lbnUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkZvbnRzIiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSXRhbGljIiwgIkl0
YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VW5kZXJsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPdXRsaW5lIiwgIk91dGxpbmUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1dyaXRp
bmdEaXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJEaXJlY3Rpb24iLCAiV3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBz
dWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0
aW9uTWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiVGV4dCBEaXJlY3Rpb24iLCAiVGV4dCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9u
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMZWZ0IHRvIFJp
Z2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExl
ZnQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lu
c3BlY3RFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJJbnNwZWN0IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyByZWNl
bnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3
aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMg
aGF2ZSBiZWVuIHBlcmZvcm1lZCIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJj
aGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiUmVjZW50IHNlYXJjaGVzIiwgImxhYmVsIGZvciBmaXJzdCBpdGVtIGluIHRoZSBt
ZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2Us
IHVzZWQgYXMgZW1iZWRkZWQgbWVudSB0aXRsZSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudUNs
ZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDbGVhciByZWNlbnQgc2VhcmNoZXMiLCAibWVudSBpdGVt
IGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMiKTsK
K30KKworU3RyaW5nIEFYV2ViQXJlYVRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhMaW5rVGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpc3RN
YXJrZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYSGVhZGluZ1RleHQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9u
VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZl
cmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVM
aXN0QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYTGlu
a0FjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJM
YWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOworfQorCitT
dHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNp
Z25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6
ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOworfQorCitTdHJpbmcgaW1hZ2VUaXRsZShj
b25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxICglMnglMyBwaXhl
bHMpIiwgIlRpdGxlIHN0cmluZyBmb3IgaW1hZ2VzIikuYXJnKGZpbGVuYW1lKS5hcmcoc2l6ZS53
aWR0aCgpKS5hcmcoc2l6ZS5oZWlnaHQoKSk7Cit9CisKK1N0cmluZyBtZWRpYUVsZW1lbnRMb2Fk
aW5nU3RhdGVUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3Nh
Z2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOworfQorCitTdHJpbmcgbWVkaWFFbGVtZW50
TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxl
ciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKK30KKwor
I2lmIEVOQUJMRShWSURFTykKKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1l
bnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJBdWRpbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlm
IChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xs
ZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSBCdXR0b24i
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1
dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlVubXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAg
aWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSBCdXR0b24i
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlciIp
CisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlNsaWRlciIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
U2xpZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTbGlkZXIgVGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBCdXR0b24iLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVC
dXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJSZXR1cm4gdG8gUmVhbC10aW1lIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRWxhcHNlZCBU
aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJUaW1l
UmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOworICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RhdHVzIERpc3BsYXki
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3Jl
ZW5CdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJGdWxsc2NyZWVuIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEZvcndhcmQgQnV0
dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTZWVr
QmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlNlZWsgQmFjayBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7CisKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1l
ID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBz
dGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFt
ZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQg
c3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5h
bWUgPT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIGF1ZGlv
IHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
UGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkJlZ2luIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIHBsYXliYWNrIiwgIk1lZGlh
IGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3ZpZSB0
aW1lIHNjcnViYmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1l
ID09ICJTbGlkZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiTWVkaWEgY29u
dHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2lu
ZCBtb3ZpZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbC10
aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJDdXJy
ZW50VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWlu
aW5nIG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5h
bWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHN0YXR1cyIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisg
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBs
YXkgbW92aWUgaW4gZnVsbC1zY3JlZW4gbW9kZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgYmFj
ayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0Jh
Y2tCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCit7
CisgICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZpbml0ZSB0aW1lIiwgIk1lZGlhIHRpbWUg
ZGVzY3JpcHRpb24iKTsKKworICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKKyAg
ICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMgPSBz
ZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2
MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRheXMpCisgICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGRheXMgJTIgaG91cnMg
JTMgbWludXRlcyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoZGF5
cykuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOworCisgICAgaWYgKGhvdXJz
KQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICIlMSBob3VycyAlMiBtaW51dGVzICUzIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlv
biIpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKKworICAgIGlmIChtaW51
dGVzKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICIlMSBtaW51dGVzICUyIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFy
ZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7CisKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRp
b24iKS5hcmcoc2Vjb25kcyk7Cit9CisKKyNlbHNlIC8vIEVOQUJMRShWSURFTykKKy8vIEZJWE1F
OiAjaWYgRU5BQkxFKFZJREVPKSBzaG91bGQgYmUgaW4gdGhlIGJhc2UgY2xhc3MKKworU3RyaW5n
IGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQor
eworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJv
bEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGlt
ZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8p
CisKKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0
ZXJuTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZU92ZXJmbG93VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRl
eHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZv
cm1TdHJhdGVnaWVzUXQuY3BwCmluZGV4IDY0ZDQyNGQ5NTZlM2MwOGY1NGZlYWI3YmIxNjU4OTE0
MmYyMmVhMmUuLmJjNTE3MmViMzE4NTI4NzA0NGEyMzAzYTc3NjE0MjhiMTY0Y2U2NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJh
dGVnaWVzUXQuY3BwCkBAIC02OCwxMSArNjgsNiBAQCBQbHVnaW5TdHJhdGVneSogUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmNyZWF0ZVBsdWdpblN0cmF0ZWd5KCkKICAgICByZXR1cm4gdGhpczsKIH0K
IAotTG9jYWxpemF0aW9uU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmVhdGVMb2Nh
bGl6YXRpb25TdHJhdGVneSgpCi17Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KIFZpc2l0ZWRMaW5r
U3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5
KCkKIHsKICAgICByZXR1cm4gdGhpczsKQEAgLTE0NSw2MDggKzE0MCw2IEBAIHZvaWQgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmdldFBsdWdpbkluZm8oY29uc3QgV2ViQ29yZTo6UGFnZSogcGFnZSwg
VmVjdG9yPFdlYkNvCiAKIH0KIAotCi0vLyBMb2NhbGl6YXRpb25TdHJhdGVneQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJTdWJt
aXQgKGlucHV0IGVsZW1lbnQpIGFsdCB0ZXh0IGZvciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8g
YWx0LCB0aXRsZSwgb3IgdmFsdWUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
OjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVz
ZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0OjpzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRoaXMgaXMgYSBzZWFy
Y2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsICJ0ZXh0IHRoYXQgYXBwZWFy
cyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBv
ZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3VibWl0IiwgImRlZmF1bHQgbGFiZWwgZm9y
IFN1Ym1pdCBidXR0b25zIGluIGZvcm1zIG9uIHdlYiBwYWdlcyIpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxl
IiwgInRpdGxlIGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBm
b3JtcyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25DaG9v
c2VNdWx0aXBsZUZpbGVzTGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBs
ZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91
bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGUgc2VsZWN0ZWQi
LCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVu
IG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
OjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVkIiwgInRl
eHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBm
aWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRv
IGJlIHNlbGVjdGVkIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZGVmYXVs
dERldGFpbHNTdW1tYXJ5VGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFp
bHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJPcGVuIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVt
VGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZlIExpbmsuLi4iLCAiRG93bmxvYWQgTGlua2VkIEZp
bGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IExpbmsiLCAiQ29w
eSBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gSW1hZ2Ui
LCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFn
ZVRvRGlzaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiU2F2ZSBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlJbWFnZVRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIEFkZHJlc3MiLCAiQ29weSBJ
bWFnZSBBZGRyZXNzIG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIFZpZGVvIiwg
Ik9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEF1ZGlv
IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29w
eSBWaWRlbyIsICJDb3B5IFZpZGVvIExpbmsgTG9jYXRpb24iKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9h
cmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkNvcHkgQXVkaW8iLCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250
cm9scygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiVG9nZ2xlIENvbnRyb2xzIiwgIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiVG9nZ2xlIExvb3AiLCAiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVl
biIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUGxheSIsICJQbGF5Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UiLCAiUGF1c2UiKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11
dGUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIk11dGUiLCAiTXV0ZSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEZyYW1lIiwgIk9wZW4g
RnJhbWUgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkiLCAiQ29weSBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiR28gQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
R29Gb3J3YXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJHbyBGb3J3YXJkIiwgIkZvcndhcmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJT
dG9wIiwgIlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbG9hZCIsICJSZWxvYWQgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdDdXQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkN1dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGFz
dGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlbGVjdCBBbGwiLCAiU2Vs
ZWN0IEFsbCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBHdWVzc2VzIEZvdW5k
IiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdu
b3JlIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkFk
ZCBUbyBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJTZWFyY2ggVGhlIFdlYiIsICJTZWFyY2ggVGhlIFdlYiBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xv
b2tVcEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcmKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxvb2sgVXAgSW4gRGljdGlvbmFyeSIsICJM
b29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5r
IiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJ
Z25vcmUgR3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3BlbGxpbmciLCAi
U3BlbGxpbmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFu
ZWwoYm9vbCBzaG93KQotewotICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRl
bSB0aXRsZSIpIDoKLSAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0
bGUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdDaGVja1NwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJDaGVjayBTcGVsbGluZyIsICJDaGVjayBzcGVsbGluZyBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgU3BlbGxpbmcgV2hpbGUg
VHlwaW5nIiwgIkNoZWNrIHNwZWxsaW5nIHdoaWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNo
ZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJGb250
cyIsICJGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkJvbGQiLCAiQm9sZCBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ0l0YWxpYygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiSXRhbGljIiwgIkl0YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVy
bGluZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk91
dGxpbmUiLCAiT3V0bGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJE
aXJlY3Rpb24iLCAiV3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERp
cmVjdGlvbk1lbnUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlRleHQgRGlyZWN0aW9uIiwgIlRleHQgZGlyZWN0aW9uIGNvbnRleHQgc3Vi
LW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRp
cmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMZWZ0IHRvIFJpZ2h0IiwgIkxl
ZnQgdG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmlnaHQgdG8gTGVmdCIs
ICJSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQotewotICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkluc3BlY3Qi
LCAiSW5zcGVjdCBFbGVtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyByZWNl
bnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3
aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMg
aGF2ZSBiZWVuIHBlcmZvcm1lZCIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OnNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlY2VudCBzZWFyY2hlcyIsICJsYWJlbCBm
b3IgZmlyc3QgaXRlbSBpbiB0aGUgbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0
aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB1c2VkIGFzIGVtYmVkZGVkIG1lbnUgdGl0bGUiKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFy
Y2hlc1RleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkNsZWFyIHJlY2VudCBzZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNl
YXJjaGVzIG1lbnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYV2ViQXJlYVRleHQoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OkFYTGlua1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTGlzdE1hcmtl
clRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0OjpBWEhlYWRpbmdUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpBWERlZmluaXRpb25MaXN0VGVybVRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OkFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6QVhCdXR0b25BY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFJhZGlv
QnV0dG9uQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
U3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhUZXh0RmllbGRB
Y3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmco
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWENoZWNrZWRDaGVja0JveEFj
dGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYVW5jaGVja2VkQ2hlY2tCb3hB
Y3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmco
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWE1lbnVMaXN0QWN0aW9uVmVy
YigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhMaW5rQWN0aW9uVmVyYigpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJl
bCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyYXNoZWRQbHVnaW5UZXh0KCkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0OjptdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OnVua25vd25GaWxlU2l6ZVRleHQoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVua25vd24iLCAiVW5rbm93biBm
aWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICIlMSAoJTJ4JTMgcGl4ZWxzKSIsICJUaXRsZSBzdHJpbmcgZm9yIGltYWdl
cyIpLmFyZyhmaWxlbmFtZSkuYXJnKHNpemUud2lkdGgoKSkuYXJnKHNpemUuaGVpZ2h0KCkpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6Om1lZGlhRWxlbWVudExvYWRpbmdTdGF0
ZVRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkxvYWRpbmcuLi4iLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVu
IHRoZSBtZWRpYSBpcyBsb2FkaW5nIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6bWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAi
TWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9h
ZGNhc3QiKTsKLX0KLQotI2lmIEVOQUJMRShWSURFTykKLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYg
bmFtZSkKLXsKLSAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQXVkaW8gRWxlbWVudCIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVt
ZW50IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiVmlkZW8gRWxlbWVudCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBp
ZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbm11dGUgQnV0dG9u
IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJQbGF5QnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiUGxheSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYg
KG5hbWUgPT0gIlBhdXNlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQotICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTbGlkZXIiLCAiTWVkaWEgY29u
dHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2xpZGVy
IFRodW1iIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJS
ZXdpbmRCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJSZXdpbmQgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OwotICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV0dXJuIHRvIFJl
YWwtdGltZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5h
bWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVsYXBzZWQgVGltZSIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQot
ICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJS
ZW1haW5pbmcgVGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFt
ZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN0YXR1cyBEaXNwbGF5IiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRnVsbHNjcmVl
biBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0g
IlNlZWtGb3J3YXJkQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBGb3J3YXJkIEJ1dHRvbiIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQotICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEJh
Y2sgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotCi0gICAgcmV0dXJuIFN0
cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlh
Q29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5h
bWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkF1ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5k
IHN0YXR1cyBkaXNwbGF5IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChu
YW1lID09ICJWaWRlb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFu
ZCBzdGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAo
bmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUgYXVkaW8gdHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xs
ZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbm11dGUgYXVk
aW8gdHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09
ICJQbGF5QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiQmVnaW4gcGxheWJhY2siLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UgcGxheWJhY2siLCAiTWVk
aWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmll
IHRpbWUgc2NydWJiZXIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5h
bWUgPT0gIlNsaWRlclRodW1iIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJNZWRpYSBj
b250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV3
aW5kIG1vdmllIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09
ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFs
LXRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1
cnJlbnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkN1cnJlbnQgbW92aWUgdGltZSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZW1h
aW5pbmcgbW92aWUgdGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAo
bmFtZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkN1cnJlbnQgbW92aWUgc3RhdHVzIiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikK
LSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
UGxheSBtb3ZpZSBpbiBmdWxsLXNjcmVlbiBtb2RlIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOwotICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCi0gICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBi
YWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTZWVr
QmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBmb3J3YXJkIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhVGltZURl
c2NyaXB0aW9uKGZsb2F0IHRpbWUpCi17Ci0gICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZp
bml0ZSB0aW1lIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKTsKLQotICAgIGludCBzZWNvbmRz
ID0gKGludClmYWJzZih0aW1lKTsKLSAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAq
IDI0KTsKLSAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOwotICAgIGludCBtaW51
dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKLSAgICBzZWNvbmRzICU9IDYwOwotCi0gICAgaWYg
KGRheXMpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIiUxIGRheXMgJTIgaG91cnMgJTMgbWludXRlcyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRp
bWUgZGVzY3JpcHRpb24iKS5hcmcoZGF5cykuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNl
Y29uZHMpOwotCi0gICAgaWYgKGhvdXJzKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBob3VycyAlMiBtaW51dGVzICUzIHNlY29uZHMi
LCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhz
ZWNvbmRzKTsKLQotICAgIGlmIChtaW51dGVzKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBtaW51dGVzICUyIHNlY29uZHMiLCAiTWVk
aWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7Ci0KLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBzZWNvbmRz
IiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoc2Vjb25kcyk7Ci19Ci0KLSNlbHNlIC8v
IEVOQUJMRShWSURFTykKLS8vIEZJWE1FOiAjaWYgRU5BQkxFKFZJREVPKSBzaG91bGQgYmUgaW4g
dGhlIGJhc2UgY2xhc3MKLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRN
ZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICByZXR1
cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVk
TWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxp
emVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsKLSAgICByZXR1cm4gU3RyaW5n
KCk7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pCi0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJm
bG93VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3Ry
aW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3Nh
Z2VTdGVwTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBTdHJpbmcoKTsKLX0KLQotCiAvLyBWaXNpdGVkTGlua1N0cmF0ZWd5CiAKIGJvb2wgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmlzTGlua1Zpc2l0ZWQoUGFnZSogcGFnZSwgTGlua0hhc2ggaGFzaCwg
Y29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVVUkwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc1F0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc1F0LmgKaW5kZXggNTA0OTE5ZTM4M2ZjOTQ3OTIyYzg0YjI3NWZhNGVkMTBmMjhhMWZmNi4u
OGJjZWM1NjIyMWQ1MTM3OTJlOTAzYTQ4MDgzNGM1NDhiYTA1NDY3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBJTmRUIC0gSW5zdGl0
dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCkBAIC0yOSw3ICsyOSw2IEBA
CiAjZGVmaW5lIFBsYXRmb3JtU3RyYXRlZ2llc1F0X2gKIAogI2luY2x1ZGUgPENvb2tpZXNTdHJh
dGVneS5oPgotI2luY2x1ZGUgPExvY2FsaXphdGlvblN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8UGxh
dGZvcm1TdHJhdGVnaWVzLmg+CiAjaW5jbHVkZSA8UGx1Z2luU3RyYXRlZ3kuaD4KICNpbmNsdWRl
IDxWaXNpdGVkTGlua1N0cmF0ZWd5Lmg+CkBAIC0zOCw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFBhZ2U7CiB9CiAKLWNsYXNzIFBsYXRmb3JtU3RyYXRlZ2llc1F0IDogcHVi
bGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBXZWJDb3JlOjpDb29raWVz
U3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29y
ZTo6TG9jYWxpemF0aW9uU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJh
dGVneSB7CitjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0
Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5LCBwcml2YXRl
IFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3Ry
YXRlZ3kgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKIApAQCAtNDgs
NyArNDcsNiBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwog
ICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRl
Z3koKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5T
dHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6TG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNy
ZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpWaXNpdGVk
TGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCk7CiAgICAgCiAgICAgLy8g
V2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5CkBAIC01OCwxMDEgKzU2LDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1
Z2luSW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+
Jik7CiAKLSAgICAvLyBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneQotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNl
YXJjaGFibGVJbmRleEludHJvZHVjdGlvbigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc3Vi
bWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0
dG9uQ2hvb3NlRmlsZUxhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9u
Q2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxl
QnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmls
ZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBk
ZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2lu
ZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9h
ZEltYWdlVG9EaXNrKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDdXQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1Bhc3RlKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTZWxlY3RBbGwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVTcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTGVhcm5TcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29s
IHNob3cpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hl
Y2tTcGVsbGluZ1doaWxlVHlwaW5nKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnT3V0bGluZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRv
dygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlv
SW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxs
c2NyZWVuKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
TXV0ZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNo
ZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNo
ZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRT
ZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYV2ViQXJlYVRleHQoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTGlua1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYSW1h
Z2VNYXBUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWEhlYWRpbmdUZXh0KCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWERlZmluaXRpb25MaXN0VGVybVRleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBB
WENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFY
VW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBB
WE1lbnVMaXN0QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhNZW51TGlz
dFBvcHVwQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhMaW5rQWN0aW9u
VmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4dCgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBXVEY6OlN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG1lZGlh
RWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG1lZGlh
RWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgV1RGOjpTdHJpbmcmKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxw
VGV4dChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbG9jYWxp
emVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1Rl
eHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21h
dGNoVGV4dCgpOwotCiAgICAgLy8gV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneQogICAgIHZp
cnR1YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFz
aCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgYmFzZVVSTCwgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcm
IGF0dHJpYnV0ZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZFZpc2l0ZWRMaW5rKFdlYkNvcmU6
OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmggYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKaW5kZXgg
OTJkMzdkYzY1MzYyYTk1NWU2MWMwOWE1ZmIzNjFlY2ViNWZjZTNhMC4uNDdiMGUzNDI1YzdjNGI2
NmNhNzg0N2Y4MmU3NThiNmMxZTIzMzIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaApAQCAt
MjYsNyArMjYsNiBAQAogI2RlZmluZSBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRV9oCiAKICNpbmNs
dWRlICJDb29raWVzU3RyYXRlZ3kuaCIKLSNpbmNsdWRlICJMb2NhbGl6YXRpb25TdHJhdGVneS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBsdWdpblN0cmF0
ZWd5LmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdHJhdGVneS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126657</attachid>
            <date>2012-02-11 17:11:52 -0800</date>
            <delta_ts>2012-02-11 17:45:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120211171151.patch</filename>
            <type>text/plain</type>
            <size>210087</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZkNWQyOTlmMTJhZWIx
NzFiNzI1NzhjNjVkZWZlZjBmMDM1MTdiZC4uNmNmNTQ0ODlkZDBhNTU5ZDFlM2IwZDg4Njg2OGU2
ZjM2YmZlZGM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2MiBAQAorMjAxMi0wMi0xMSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3Jk
ZXI6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9ybWF0TG9jYWxpemVkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRl
ZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OmlucHV0RWxlbWVu
dEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5v
RmlsZVNlbGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzayk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9v
a1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1t
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVW5kZXJsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ091
dGxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnU21hcnRRdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnU21hcnREYXNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU21h
cnRMaW5rcyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFj
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJD
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhMaXN0TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWEhlYWRpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0
RGVmaW5pdGlvblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklBQ29udGVudEdyb3VwVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEJ1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0
RmllbGRBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
Yik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhNZW51
TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6bWlzc2luZ1BsdWdpblRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1bmtub3duRmlsZVNp
emVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnVwbG9hZEZpbGVUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmFsbEZpbGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpidWlsdEluUERGUGx1Z2lu
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjprZXlnZW5NZW51SXRlbTUxMik6CisgICAgICAgIChXZWJDb3JlOjpr
ZXlnZW5NZW51SXRlbTEwMjQpOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW0yMDQ4
KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbktleWNoYWluSXRlbU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6aW1h
Z2VUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmls
ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdG
b3JNdWx0aXBsZUZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3RyYXRlZ2llczo6UGxhdGZvcm1TdHJhdGVnaWVzKToKKyAgICAgICAgKFBs
YXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmlu
Z3NFZmwuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0
LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aW5wdXRFbGVtZW50
QWx0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bGVCdXR0b25DaG9vc2VGaWxlTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNo
b29zZU11bHRpcGxlRmlsZXNMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9G
aWxlU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1Nl
bGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUlu
TmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
SW1hZ2VUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVXJsVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0N1dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0lnbm9yZUdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZ1doaWxlVHlwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrR3JhbW1hcldpdGhTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdGb250TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdCb2xk
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVOb1JlY2VudFNl
YXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaXN0TWFya2VyVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEhlYWRp
bmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYUmFk
aW9CdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dEZpZWxkQWN0aW9u
VmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhNZW51TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhN
ZW51TGlzdFBvcHVwQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25W
ZXJiKToKKyAgICAgICAgKFdlYkNvcmU6Om1pc3NpbmdQbHVnaW5UZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om11bHRpcGxlRmls
ZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93bkZpbGVTaXplVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxl
bWVudExvYWRpbmdTdGF0ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TGl2
ZUJyb2FkY2FzdFN0YXRlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1p
c21hdGNoVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1Rl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KToKKwogMjAxMi0wMi0xMSAgQW5kcmVhcyBLbGluZyAgPGF3ZXNvbWVrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQXR0cmlidXRlIHN0eWxlcyBzaG91bGQgYmUgY3JlYXRlZCBsYXppbHkuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCmluZGV4IDE0OGEyNzM2OTgwZTJiMjg5ZWY1YjBhMjg0NTdlMGY5ZWNmYThmMWUu
Ljk1NjlmZGFhMmY0ZWM5ZWVjNDUwNjA4N2EzZmExZjRkZTAwZjY1NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTEgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2FsaXphdGlvblN0cmF0
ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0Lmg6CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdCk6CisKIDIwMTItMDItMDkgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IGNvbXBpbGF0aW9uIHdpdGggbmV3ZXIgUXQ1CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCmluZGV4IDZkMmE3ZTY0N2IyZTBhZTA5YjdmNzZjYzA2NzI2Nzg1OTNm
OTIxMzEuLmZiOGY4Y2IxMWNiZDFkYTMzM2FjNjUzYjI2YjE3NjE5M2NjNWZhNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMTEgIEJlbmphbWluIFBvdWxh
aW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2Fs
aXphdGlvblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaDoKKwogMjAx
MS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgUGxh
dGZvcm1FdmVudCBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDhjMzE1ZDYyNzMxNzgw
NzAyOWY1MzQ4MGI1NzA1NmQxYzNlZjEyM2IuLjNhYTc4YzM5ZGEwYjM1NGQ4NWIwYmI2NWIxNGFj
N2VkNzFhZjdjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDU0LDcgKzEwNTQsNiBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwCiAgICAgcGxh
dGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCiAgICAgcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMu
Y3BwCi0gICAgcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcAogICAgIHBs
YXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5jcHAKICAgICBwbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDg0
NDhiM2FjOTY2ODJhZTVjZGNiYWJjMzA1MzQ0M2ZkNjcwZGFlYjAuLjAzNzc3ZjJlNjAzYzg1OGFk
MDYzYTQ0ZTJlYjM3NTUxZTQ4ZGZjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMjgxOSw4ICsyODE5LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBv
bmVudHMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3Bw
IFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ku
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFn
SW1hZ2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDE0M2Y3OGNlZDcwY2FmOWU1NWFmMjFiMGZjMjUy
NzczNTE3NTA5MjQuLjFlMTA1NTFhMzgzM2M0NDc1MGY2YjZiNzQ1YTFhOTIzYmU5YjViYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtMTAzNSw3ICsxMDM1LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZv
cm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAg
XAogICAgIHBsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcCBcCi0gICAgcGxhdGZvcm0vRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBcCiAgICAgcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIFwK
ICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5j
cHAgXApAQCAtMTE2OSw3ICsxMTY4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vVVVJ
RC5jcHAgXAogICAgIHBsYXRmb3JtL1dpZGdldC5jcHAgXAogICAgIHBsYXRmb3JtL1BsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAgXAotICAgIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIFwKICAg
ICBwbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcCBcCiAgICAgcGx1Z2lucy9QbHVnaW5EYXRh
YmFzZS5jcHAgXAogICAgIHBsdWdpbnMvUGx1Z2luRGVidWcuY3BwIFwKQEAgLTIwOTAsNyArMjA4
OCw2IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmggXAogICAgIHBs
YXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmggXAogICAgIHBsYXRmb3JtL0RhdGVDb21wb25lbnRz
LmggXAotICAgIHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIFwKICAgICBw
bGF0Zm9ybS9EcmFnRGF0YS5oIFwKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuaCBcCiAgICAgcGxh
dGZvcm0vRmlsZUNob29zZXIuaCBcCkBAIC0yODM1LDYgKzI4MzIsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvTG9nZ2luZ1F0
LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvTGFuZ3VhZ2VRdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0
L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1RlbXBvcmFyeUxpbmtT
dHVic1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Qm91bmRhcmllc1F0LmNwcCBc
CiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVUXQuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzQ5OGRmZGVjYTQ4YmYwMmY2ZWFkZjQ3NzQ3Mzc1
ZjYyZDFkNjYwMi4uOTA0NmY4ZGNmNDAxOWMxOTEzMmMwZGY2YWZkZTg5YWU4NDIwYzkyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTU0OCw3ICs1NDgsNiBAQCBfX1pON1dlYkNvcmUxN1JlZ3Vs
YXJFeHByZXNzaW9uRDFFdgogX19aTjdXZWJDb3JlMTdjYWNoZURPTVN0cnVjdHVyZUVQTlNfMTdK
U0RPTUdsb2JhbE9iamVjdEVQTjNKU0M5U3RydWN0dXJlRVBLTlMyXzlDbGFzc0luZm9FCiBfX1pO
N1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVJLTjNXVEY2U3RyaW5nRVJpCiBfX1pON1dlYkNv
cmUxOEhUTUxDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEUKLV9fWk43V2ViQ29y
ZTE4UGxhdGZvcm1TdHJhdGVnaWVzMjZjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneUV2CiBfX1pO
N1dlYkNvcmUxOFNlYXJjaFBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9f
Wk43V2ViQ29yZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FTlNf
MjdFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGVFCiBfX1pON1dlYkNvcmUxOHBsdWdpblNjcmlw
dE9iamVjdEVQTjNKU0M5RXhlY1N0YXRlRVBOU18xM0pTSFRNTEVsZW1lbnRFCkBAIC0xNDc3LDcg
KzE0NzYsNiBAQCBfX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5SWRFUktOM1dU
RjEyQXRvbWljU3RyaW5nRQogX19aVFZON1dlYkNvcmUxMkNocm9tZUNsaWVudEUKIF9fWlRWTjdX
ZWJDb3JlMTZJY29uRGF0YWJhc2VCYXNlRQogX19aVFZON1dlYkNvcmUxN0ZyYW1lTG9hZGVyQ2xp
ZW50RQotX19aVFZON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llc0UKIF9fWlRWTjdXZWJDb3Jl
MjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQogX19aVFZON1dlYkNvcmUyOEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw4U2V0dGluZ3NFCiBfZmlsZW5hbWVCeUZpeGluZ0lsbGVnYWxDaGFy
YWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTA4ZjBlY2E2YTFhNWIyYzg5MTU5MjEyZDI0MGEw
OWZhOThkNDMwYy4uYjkyM2E0NWI1N2UyMTJlYWQxYjUzODU1N2I4NTgwMWFlZWQ3ZWQ5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjUxLDcgKzI1MSw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
Q29va2llc1N0cmF0ZWd5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0N1cnNvci5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oJywKLSAgICAgICAgICAgICdwbGF0
Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vRHJhZ0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0ltYWdlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgnLApAQCAtMjY3LDcgKzI2Niw2IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vTGVuZ3RoQm94LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0xlbmd0aFNpemUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTGlua0hhc2guaCcsCi0gICAg
ICAgICAgICAncGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2dn
aW5nLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oJywK
QEAgLTI3MzIsNyArMjczMCw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Vyc29yLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9E
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9E
cmFnRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0V2ZW50TG9vcC5oJywKQEAgLTI3NTYsNyArMjc1Myw2IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vTGFuZ3VhZ2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9MZW5ndGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9MaW5rSGFzaC5jcHAnLAotICAg
ICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9Mb2dnaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggOTlhYzRkMmQ5Y2M2N2E1YmFhOGQzMjM0ZDk4ZTk2
YzRjMzRkN2M0Ny4uZDViZTM5ZjQ1ODdmNWZkY2ZlNDVlM2ZmODFlY2E0ZmY4YWNiNjA4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLm9yZGVyCkBAIC01MzI5LDkgKzUzMjksNiBAQCBfX1pOSzdXZWJDb3JlMTlBY2Nl
c3NpYmlsaXR5T2JqZWN0MTVpc01lZGlhVGltZWxpbmVFdgogLVtBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciByb2xlRGVzY3JpcHRpb25dCiBfX1pON1dlYkNvcmUxM0FYSGVhZGluZ1RleHRFdgog
X19aTjdXZWJDb3JlMjFoYXNQbGF0Zm9ybVN0cmF0ZWdpZXNFdgotX19aTjdXZWJDb3JlMThQbGF0
Zm9ybVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5QzFFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYSGVhZGluZ1RleHRFdgogX19aTks3V2ViQ29yZTI1QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDRzaXplRXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QxMWVsZW1lbnRSZWN0RXYKIF9fWk5LN1dlYkNvcmUxOUFjY2Vzc2liaWxp
dHlPYmplY3QxM2lzUmFkaW9CdXR0b25FdgpAQCAtNjY4MCw3ICs2Njc3LDYgQEAgX19aTks3V2Vi
Q29yZTE0RG9jdW1lbnRMb2FkZXIyNWlzTG9hZGluZ011bHRpcGFydENvbnRlbnRFdgogX19aTks3
V2ViQ29yZTRLVVJMMTdsYXN0UGF0aENvbXBvbmVudEV2CiBfX1pON1dlYkNvcmUyNGRlY29kZVVS
TEVzY2FwZVNlcXVlbmNlc0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEwaW1hZ2VUaXRs
ZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kxMGltYWdlVGl0bGVFUktOM1dURjZTdHJpbmdFUktOU183SW50U2l6
ZUUKIF9fWk43V2ViQ29yZUwyMWZvcm1hdExvY2FsaXplZFN0cmluZ0VOM1dURjZTdHJpbmdFegog
X19aTjdXZWJDb3JlOERvY3VtZW50OHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJD
b3JlOERvY3VtZW50NGhlYWRFdgpAQCAtNjczMCw3ICs2NzI2LDYgQEAgX19aTjdXZWJDb3JlMTZK
U0hUTUxQcmVFbGVtZW50MTVjcmVhdGVQcm90b3R5cGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0
SlNHbG9iYWwKIF9fWk43V2ViQ29yZTE2SlNIVE1MUHJlRWxlbWVudEMxRVBOM0pTQzlTdHJ1Y3R1
cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTRIVE1MUHJl
RWxlbWVudEVFRQogX19aTjdXZWJDb3JlMTJjYWNoZVdyYXBwZXJJTlNfMTRIVE1MUHJlRWxlbWVu
dEVFRXZQTlNfMTVET01XcmFwcGVyV29ybGRFUFRfUE5TXzEySlNET01XcmFwcGVyRQogX19aTjdX
ZWJDb3JlMTNBWFdlYkFyZWFUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MTNBWFdlYkFyZWFUZXh0RXYKIF9fWk43V2ViQ29yZTEwUmVuZGVyVmlldzEzYWJz
b2x1dGVRdWFkc0VSTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTG0wRUVFCiBfX1pON1dlYkNv
cmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxNmdldERvY3VtZW50TGlua3NFUk4zV1RGNlZl
Y3RvcklOUzFfNlJlZlB0cklOU18xOUFjY2Vzc2liaWxpdHlPYmplY3RFRUVMbTBFRUUKIF9fWk43
V2ViQ29yZThEb2N1bWVudDVsaW5rc0V2CkBAIC02NzQwLDcgKzY3MzUsNiBAQCBfX1pOSzdXZWJD
b3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MTFsYXlvdXRDb3VudEV2CiBfX1pOSzdXZWJD
b3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MjRlc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3NF
dgogX19aTks3V2ViQ29yZTE1UHJvZ3Jlc3NUcmFja2VyMTdlc3RpbWF0ZWRQcm9ncmVzc0V2CiBf
X1pON1dlYkNvcmUxMEFYTGlua1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kxMEFYTGlua1RleHRFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJJbmxpbmUyNWN1
bGxlZElubGluZUFic29sdXRlUmVjdHNFUEtTMF9STjNXVEY2VmVjdG9ySU5TXzdJbnRSZWN0RUxt
MEVFRVJLTlNfN0ludFNpemVFCiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0MTlpbnRlcm5hbExpbmtFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUxN0hUTUxBbmNob3JFbGVt
ZW50NGhyZWZFdgpAQCAtNjg5MSw5ICs2ODg1LDcgQEAgX19aTks3V2ViQ29yZTEzSFRNTEhSRWxl
bWVudDIzY2FuQ29udGFpblJhbmdlRW5kUG9pbnRFdgogX19aTks3V2ViQ29yZTE3QWNjZXNzaWJp
bGl0eUxpc3QxM2lzT3JkZXJlZExpc3RFdgogX19aTks3V2ViQ29yZTE3QWNjZXNzaWJpbGl0eUxp
c3QxNmlzRGVmaW5pdGlvbkxpc3RFdgogX19aTjdXZWJDb3JlMjRBWERlZmluaXRpb25MaXN0VGVy
bVRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNEFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dEV2CiBfX1pON1dlYkNvcmUzMEFYRGVmaW5pdGlvbkxpc3REZWZp
bml0aW9uVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMw
QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKIF9fWk43V2ViQ29yZTE5SFRNTEZpZWxk
U2V0RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTE3SFRNTExlZ2VuZEVsZW1lbnREMEV2CiBfX1pO
N1dlYkNvcmVMMTZ2aWRlb0NvbnN0cnVjdG9yRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9j
dW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RWIKQEAgLTcxODIsNyArNzE3NCw2IEBAIF9fWlRo
bjEyMF9ON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQzMG1lZGlhUGxheWVyTmV0d29ya1N0YXRl
Q2hhbmdlZEVQTlNfMTFNZWRpCiBfX1pON1dlYkNvcmUxMU1lZGlhUGxheWVyMTJuZXR3b3JrU3Rh
dGVFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTVzZXROZXR3b3JrU3RhdGVFTlNf
MTFNZWRpYVBsYXllcjEyTmV0d29ya1N0YXRlRQogX19aTjdXZWJDb3JlMjhtZWRpYUVsZW1lbnRM
b2FkaW5nU3RhdGVUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5MjhtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKIF9fWk43V2ViQ29yZTM0TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzE5Y3JlYXRlQVZBc3NldEZvclVSTEVSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTMwTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uMTdz
ZXREZWxheUNhbGxiYWNrc0ViCiBfX1pMMzhpbml0QVZVUkxBc3NldFJlZmVyZW5jZVJlc3RyaWN0
aW9uc0tleXYKQEAgLTc0MTcsNyArNzQwOCw2IEBAIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOXJvbGVWYWx1ZUV2CiBfX1pOSzdXZWJDb3JlMzVBY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjI0YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
RXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyMTVl
bGVtZW50VHlwZU5hbWVFdgogX19aTjdXZWJDb3JlMzRsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmdFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNUR5bmFtaWNOb2RlTGlzdDE1aW52YWxpZGF0ZUNhY2hlRXYK
IF9fWk5LN1dlYkNvcmUyNE1lZGlhQ29udHJvbElucHV0RWxlbWVudDIxaXNNZWRpYUNvbnRyb2xF
bGVtZW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2wyMmFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRFdgpAQCAtNzU1NCwxNCArNzU0NCwxMiBAQCBfX1pON1dlYkNvcmUy
M1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTRzdHlsZURpZENoYW5nZUVOU18xNVN0eWxlRGlmZmVy
ZW5jZUVQS05TXwogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDE3dXBkYXRl
RnJvbUVsZW1lbnRFdgogX19aTjdXZWJDb3JlMThTaGFkb3dJbnB1dEVsZW1lbnQ2Y3JlYXRlRVBO
U18xMUhUTUxFbGVtZW50RQogX19aTjdXZWJDb3JlMjVmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVs
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjVmaWxlQnV0dG9u
Q2hvb3NlRmlsZUxhYmVsRXYKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxMnZhbHVlQ2hhbmdlZEV2
CiBfX1pON1dlYkNvcmUyMkhUTUxGb3JtQ29udHJvbEVsZW1lbnQxMXNldERpc2FibGVkRWIKIF9f
Wk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wyOWNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzRXYKIF9fWk5LN1dlYkNvcmUxM0ZpbGVJbnB1dFR5cGUxMmlzRmlsZVVwbG9hZEV2
CiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTFwYWludE9iamVjdEVSTlNf
OVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjlmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJl
bEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5ZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29s
dXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk43V2ViQ29yZTExUmVuZGVyQmxvY2sxM2Fic29sdXRl
UmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFRUVpaQogX19aVGhuOF9ON1dlYkNv
cmUxOUhUTUxUZXh0QXJlYUVsZW1lbnREMEV2CkBAIC03ODE3LDEwICs3ODA1LDcgQEAgX19aTjNX
VEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIxRWRpdG9ySW50
ZXJuYWxDb21tYW5kRUVOU18KIF9fWk4zV1RGOUhhc2hUYWJsZUlOU182U3RyaW5nRVN0NHBhaXJJ
UzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVFTlNfMThQYWlyRmlyc3RFeHRy
YWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEw
SGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2bG9va3VwSVMxX05TXzIySWRlbnRpdHlI
YXNoVHJhbnNsYXRvcklTMV9TN19TQV9FRUVFUFM3X1JLVF8KIF9fWk4zV1RGOUhhc2hUYWJsZUlO
U182U3RyaW5nRVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVF
TlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2cmVoYXNo
RWkKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnNFYgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k2c2hhcmVkRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVjb250ZXh0TWVudUl0ZW1UYWdT
aG93U3Vic3RpdHV0aW9uc0ViCiBfX1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsRWIKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MzVjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbEViCiBfX1pON1dlYkNvcmVMMjJj
ZW50ZXJUcnVuY2F0ZVRvQnVmZmVyRVJLTjNXVEY2U3RyaW5nRWpqUHQKIF9fWk43V2ViQ29yZTEx
aXNUZXh0QnJlYWtFUE5TXzE3VGV4dEJyZWFrSXRlcmF0b3JFaQogX19aTjdXZWJDb3JlMTVTUUxp
dGVTdGF0ZW1lbnQ4YmluZE51bGxFaQpAQCAtMTE5NTAsNyArMTE5MzUsNiBAQCBfX1pON1dlYkNv
cmUyMmpzSFRNTENvbGxlY3Rpb25MZW5ndGhFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVF
UktOUzBfMTBJZGVudAogX19aTks3V2ViQ29yZTE3SFRNTE9iamVjdEVsZW1lbnQxOGNvbnRhaW5z
SmF2YUFwcGxldEV2CiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MzBzZXRTaG93
c01pc3NpbmdQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdtaXNzaW5nUGx1Z2luVGV4
dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3bWlzc2luZ1Bs
dWdpblRleHRFdgogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDEzcGFpbnRSZXBs
YWNlZEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVj
dDI2Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnlFaWlSTlNfOUZsb2F0UmVjdEVSTlNfNFBhdGhF
UzJfUk5TXzRGb250RVJOU183VGV4dFJ1bkVSZgogX19aTjdXZWJDb3JlNFBhdGgxNGFkZFJvdW5k
ZWRSZWN0RVJLTlNfOUZsb2F0UmVjdEVSS05TXzlGbG9hdFNpemVFCkBAIC0xMjM3MCw3ICsxMjM1
NCw2IEBAIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxOWFsdEF0dHJpYnV0ZUNoYW5nZWRFdgogX19a
TjNXVEY2U3RyaW5nMTBtYWtlU2VjdXJlRXQKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUyN3Nob3Vs
ZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZUV2CiBfX1pON1dlYkNvcmUxOWlucHV0RWxlbWVudEFsdFRl
eHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxOWlucHV0RWxl
bWVudEFsdFRleHRFdgogX19aTks3V2ViQ29yZTE3UmVuZGVyVGV4dENvbnRyb2wzNnJlcXVpcmVz
Rm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbkV2CiBfX1pON1dlYkNvcmUzMGpzSFRNTElucHV0
RWxlbWVudERlZmF1bHRWYWx1ZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8x
MElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzMmpzSFRNTElucHV0RWxlbWVudERlZmF1bHRDaGVj
a2VkRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKQEAg
LTE1MDg2LDExICsxNTA2OSw4IEBAIF9fWk43V2ViQ29yZTE3SFRNTEtleWdlbkVsZW1lbnQ2Y3Jl
YXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1CiBfX1pON1dlYkNv
cmUxN0hUTUxLZXlnZW5FbGVtZW50QzJFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVu
dEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pON1dlYkNvcmUyMGdldFN1cHBvcnRlZEtleVNp
emVzRVJOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0wRUVFCiBfX1pON1dlYkNvcmUxOGtleWdl
bk1lbnVJdGVtMjA0OEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKIF9fWk43V2ViQ29yZTE4a2V5Z2VuTWVudUl0ZW0xMDI0
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MThrZXlnZW5NZW51
SXRlbTEwMjRFdgogX19aTjdXZWJDb3JlMTdrZXlnZW5NZW51SXRlbTUxMkV2Ci1fX1pON1dlYkNv
cmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3a2V5Z2VuTWVudUl0ZW01MTJFdgogX19a
TjdXZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudEMyRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184
RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdXZWJDb3JlMTdIVE1MT3B0aW9u
RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pO
N1dlYkNvcmUxM1NlbGVjdEVsZW1lbnQxM2Rlc2VsZWN0SXRlbXNFUk5TXzE3U2VsZWN0RWxlbWVu
dERhdGFFUE5TXzdFbGVtZW50RVM0XwpAQCAtMTU1NzEsNjAgKzE1NTUxLDM0IEBAIF9fWk43V2Vi
Q29yZTExQ29udGV4dE1lbnVDMUV2CiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51QzJFdgogX19a
TjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXI4cG9wdWxhdGVFdgogX19aTjdXZWJDb3Jl
MjZjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTI2Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtFdgogX19aTjdXZWJD
b3JlMTVDb250ZXh0TWVudUl0ZW1DMUVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250
ZXh0TWVudUFjdGlvbkVSS04zV1RGNlN0cmluZ0VQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2Vi
Q29yZTE1Q29udGV4dE1lbnVJdGVtQzJFTlNfMTlDb250ZXh0TWVudUl0ZW1UeXBlRU5TXzE3Q29u
dGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFUE5TXzExQ29udGV4dE1lbnVFCiBfX1pON1dl
YkNvcmVMMzNjcmVhdGVQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb25FTlNfMTlDb250ZXh0TWVu
dUl0ZW1UeXBlRU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFYmIKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvd0V2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmtJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzNmNvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0Ns
aXBib2FyZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3
V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250
ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzN2NvbnRl
eHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2tFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2tFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4Y29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmRFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBsYXlFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2CiBfX1pON1dlYkNvcmUyN2NvbnRl
eHRNZW51SXRlbVRhZ01lZGlhTXV0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sc0V2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9sc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzY29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuRXYKIF9f
Wk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHRFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nl
YXJjaEluU3BvdGxpZ2h0RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjdjb250ZXh0
TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgogX19aTjdXZWJDb3JlMjJjb250ZXh0TWVudUl0ZW1UYWdD
b3B5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjJjb250ZXh0
TWVudUl0ZW1UYWdDb3B5RXYKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnR29CYWNr
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2tFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdHb0Zvcndh
cmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRN
ZW51SXRlbVRhZ0dvRm9yd2FyZEV2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ1N0
b3BFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRN
ZW51SXRlbVRhZ1N0b3BFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51
SXRlbVRhZ1JlbG9hZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFt
ZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUz
MmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZEV2
CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdJ
Z25vcmVTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3Bl
bGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRl
eHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVHcmFtbWFyRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyRXYKIF9fWk43V2ViQ29yZTIx
Y29udGV4dE1lbnVJdGVtVGFnQ3V0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjFjb250ZXh0TWVudUl0ZW1UYWdDdXRFdgogX19aTjdXZWJDb3JlMjNjb250ZXh0
TWVudUl0ZW1UYWdQYXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTIzY29udGV4dE1lbnVJdGVtVGFnUGFzdGVFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJl
c3VsdDE3aXNDb250ZW50RWRpdGFibGVFdgogX19aTks3V2ViQ29yZTIxQ29udGV4dE1lbnVDb250
cm9sbGVyMjFjaGVja09yRW5hYmxlSWZOZWVkZWRFUk5TXzE1Q29udGV4dE1lbnVJdGVtRQogX19a
Tks3V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtNHR5cGVFdgpAQCAtMTU2MzgsNyArMTU1OTIsNiBA
QCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTJtZWRpYUVsZW1lbnRFdgogX19aTjdXZWJD
b3JlMTVDb250ZXh0TWVudUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJv
bGxlcjIxYWRkSW5zcGVjdEVsZW1lbnRJdGVtRXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJ
dGVtVGFnSW5zcGVjdEVsZW1lbnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50RXYKIF9fWk5LN1dlYkNv
cmUxMUNvbnRleHRNZW51MTlwbGF0Zm9ybURlc2NyaXB0aW9uRXYKIF9fWk43V2ViQ29yZTExQ29u
dGV4dE1lbnUyMnNldFBsYXRmb3JtRGVzY3JpcHRpb25FUDE0TlNNdXRhYmxlQXJyYXkKIF9fWk43
V2ViQ29yZThEb2N1bWVudDIzYWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWRFUE5TXzROb2RlRQpAQCAt
MTYyMTAsMTYgKzE2MTYzLDExIEBAIF9fWk5LN1dlYkNvcmUxOFRleHRDaGVja2luZ0hlbHBlcjQw
Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZUViUmJTCiBfX1pOSzdXZWJD
b3JlMTNIaXRUZXN0UmVzdWx0MTRyZXBsYWNlZFN0cmluZ0V2CiBfX1pON1dlYkNvcmVMMjlzZWxl
Y3Rpb25Db250YWluc1Bvc3NpYmxlV29yZEVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMzBjb250
ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudUV2CiBfX1pON1dl
YkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjQwY3JlYXRlQW5kQXBwZW5kU3BlbGxpbmdBbmRH
cmFtbWFyU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRl
eHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgogX19aTjdX
ZWJDb3JlNDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmdFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k0MmNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxs
aW5nRXYKIF9fWk43V2ViQ29yZTQ2Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0
b21hdGljYWxseUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTQ2
Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseUV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMjJzcGVsbGluZ1BhbmVsSXNTaG93aW5nRXYKIF9fWk43V2ViQ29yZTE1Q29u
dGV4dE1lbnVJdGVtOHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkVkaXRv
cjI0aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkRXYKQEAgLTE2MjI3LDY2ICsxNjE3NSw0MSBAQCBf
X1pON1dlYkNvcmU2RWRpdG9yMzZpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWRF
dgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW0xMHNldFN1Yk1lbnVFUE5TXzExQ29udGV4
dE1lbnVFCiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51RDFFdgogX19aTjdXZWJDb3JlMzVjb250
ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnVF
dgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIzNWNyZWF0ZUFuZEFwcGVuZFN1
YnN0aXR1dGlvbnNTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43V2ViQ29yZTMy
Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlRXYK
IF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXNFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0
UXVvdGVzRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXNFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0RGFzaGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRM
aW5rc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRh
Z1RleHRSZXBsYWNlbWVudEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50RXYKIF9fWk43V2ViQ29yZTZF
ZGl0b3IyN3N1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZ0V2CiBfX1pON1dlYkNvcmU2RWRpdG9y
MzVpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU2RWRp
dG9yMzRpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkRXYKIF9fWk43V2ViQ29yZTZF
ZGl0b3IzMWlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRFdgogX19aTjdXZWJDb3JlNkVk
aXRvcjMzaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudUV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjM3Y3JlYXRlQW5k
QXBwZW5kVHJhbnNmb3JtYXRpb25zU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pO
N1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2VFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBl
ckNhc2VFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlRXYK
LV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0
ZW1UYWdNYWtlTG93ZXJDYXNlRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnQ2Fw
aXRhbGl6ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29u
dGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZUV2CiBfX1pON1dlYkNvcmUyNmNvbnRleHRNZW51SXRl
bVRhZ0ZvbnRNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MjZjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51
Q29udHJvbGxlcjI2Y3JlYXRlQW5kQXBwZW5kRm9udFN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJ
dGVtRQogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHNFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ1No
b3dGb250c0V2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0JvbGRFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRNZW51SXRlbVRhZ0Jv
bGRFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWNFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRlbVRhZ0l0YWxp
Y0V2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZUV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnVW5k
ZXJsaW5lRXYKIF9fWk43V2ViQ29yZTI1Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZUV2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI1Y29udGV4dE1lbnVJdGVtVGFn
T3V0bGluZUV2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1N0eWxlc0V2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9yc0V2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4dE1lbnVJdGVt
VGFnU2hvd0NvbG9yc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1l
bnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOGNvbnRleHRN
ZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xs
ZXIyOGNyZWF0ZUFuZEFwcGVuZFNwZWVjaFN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJdGVtRQog
X19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nRXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdTdGFy
dFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwY29udGV4dE1lbnVJdGVtVGFnU3RvcFNwZWFraW5n
RXYKIF9fWk43V2ViQ29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRVJLTjNXVEY2
VmVjdG9ySU5TMF82U3RyaW5nRUxtMEVFRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZ0V2CiBfX1pON1dlYkNv
cmUzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5n
RGlyZWN0aW9uTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjM4Y3Jl
YXRlQW5kQXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJdGVt
RQogX19aTjdXZWJDb3JlMzRjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uRXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzRjb250ZXh0TWVudUl0ZW1U
YWdEZWZhdWx0RGlyZWN0aW9uRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnTGVm
dFRvUmlnaHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNv
bnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJ
dGVtVGFnUmlnaHRUb0xlZnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0RXYKIF9fWk5LN1dlYkNvcmU2RWRp
dG9yMTZoYXNCaWRpU2VsZWN0aW9uRXYKIF9fWk5LN1dlYkNvcmUxM0tleWJvYXJkRXZlbnQ4Y2hh
ckNvZGVFdgogX19aTjdXZWJDb3JlMThqc0RPTVNlbGVjdGlvblR5cGVFUE4zSlNDOUV4ZWNTdGF0
ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTYyOTUsNyArMTYyMTgsNiBA
QCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJCbG9jazI0Y29udGFpbnNOb25aZXJvQmlkaUxldmVsRXYK
IF9fWk5LN1dlYkNvcmUxOUFwcGx5UHJvcGVydHlMZW5ndGhJTE5TXzEwTGVuZ3RoQXV0b0UxRUxO
U18xNUxlbmd0aEludHJpbnNpY0UxRUxOU18xOExlbmd0aE1pbkludHJpbnNpY0UxRUxOU18xMExl
bmd0aE5vbmVFMUVMTlNfMTVMZW5ndGhVbmRlZmluZWRFMUVFMTBhcHBseVZhbHVlRVBOU18xNkNT
U1N0eWxlU2VsZWN0b3JFUE5TXzhDU1NWYWx1ZUUKIF9fWk43V2ViQ29yZTExUmVuZGVyU3R5bGUx
MXNldE1heFdpZHRoRU5TXzZMZW5ndGhFCiBfX1pON1dlYkNvcmUzNmNvbnRleHRNZW51SXRlbVRh
Z0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25h
cnlFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMjZo
YXNJbnNwZWN0b3JGcm9udGVuZENsaWVudEV2CiBfX1pOSzdXZWJDb3JlMjFCYWNrRm9yd2FyZENv
bnRyb2xsZXIxOGNhbkdvQmFja09yRm9yd2FyZEVpCiBfX1pOSzdXZWJDb3JlNFBhZ2UxOGNhbkdv
QmFja09yRm9yd2FyZEVpCkBAIC0xNzA2Myw3ICsxNjk4NSw2IEBAIF9fWk43V2ViQ29yZTE0U1ZH
U01JTEVsZW1lbnQyMGRpc2Nvbm5lY3RDb25kaXRpb25zRXYKIF9fWk43V2ViQ29yZTE3U01JTFRp
bWVDb250YWluZXIxMHVuc2NoZWR1bGVFUE5TXzE0U1ZHU01JTEVsZW1lbnRFCiBfX1pOSzdXZWJD
b3JlMTdSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gxMHJlbmRlck5hbWVFdgogX19aTjdXZWJD
b3JlMjdzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb25FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kyN3NlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbkV2CiBfX1pO
N1dlYkNvcmUxNFJlbmRlclJ1YnlUZXh0QzFFUE5TXzROb2RlRQogX19aTks3V2ViQ29yZTEzUmVu
ZGVyUnVieVJ1bjExaGFzUnVieVRleHRFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyUnVieVRleHQx
MGlzUnVieVRleHRFdgpAQCAtMTg5NjksNyArMTg4OTAsNiBAQCBfX1pON1dlYkNvcmU4TG9jYXRp
b243c2V0SHJlZkVSS04zV1RGNlN0cmluZ0VQTlNfOURPTVdpbmRvd0VTNl8KIF9fWk43V2ViQ29y
ZTE3U3R5bGVQZW5kaW5nSW1hZ2UxMnJlbW92ZUNsaWVudEVQTlNfMTJSZW5kZXJPYmplY3RFCiBf
X1pON1dlYkNvcmUxNVN1Ym1pdElucHV0VHlwZTEyZGVmYXVsdFZhbHVlRXYKIF9fWk43V2ViQ29y
ZTI0c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MjRzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWxFdgogX19aTks3V2ViQ29y
ZTExUmVuZGVyVGFibGUyMGZpcnN0TGluZUJveEJhc2VsaW5lRXYKIF9fWk5LN1dlYkNvcmUxOFJl
bmRlclRhYmxlU2VjdGlvbjIwZmlyc3RMaW5lQm94QmFzZWxpbmVFdgogX19aTks3V2ViQ29yZTE1
UmVuZGVyV29yZEJyZWFrMTByZW5kZXJOYW1lRXYKQEAgLTE5NDU1LDcgKzE5Mzc1LDYgQEAgX19a
TjdXZWJDb3JlTDIyVG9wR3JhZGllbnRJbnRlcnBvbGF0ZUVQdlBLZFBkCiBfX1pON1dlYkNvcmVM
MjVCb3R0b21HcmFkaWVudEludGVycG9sYXRlRVB2UEtkUGQKIF9fWk43V2ViQ29yZTE0UmVzZXRJ
bnB1dFR5cGUxMmRlZmF1bHRWYWx1ZUV2CiBfX1pON1dlYkNvcmUyM3Jlc2V0QnV0dG9uRGVmYXVs
dExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjNyZXNl
dEJ1dHRvbkRlZmF1bHRMYWJlbEV2CiBfX1pON1dlYkNvcmUxMlVSTElucHV0VHlwZTZjcmVhdGVF
UE5TXzE2SFRNTElucHV0RWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxMlVSTElucHV0VHlwZTE1Zm9y
bUNvbnRyb2xUeXBlRXYKIF9fWk43V2ViQ29yZTE0SW5wdXRUeXBlTmFtZXMzdXJsRXYKQEAgLTI1
MjIxLDcgKzI1MTQwLDYgQEAgX19aTjdXZWJDb3JlMTNKU0V2ZW50U291cmNlRDFFdgogX19aTjdX
ZWJDb3JlMTFFdmVudFNvdXJjZUQwRXYKIF9fWk5LM0pTQzE0SlNHbG9iYWxPYmplY3QxNGlzR2xv
YmFsT2JqZWN0RXYKIF9fWk43V2ViQ29yZTIybXVsdGlwbGVGaWxlVXBsb2FkVGV4dEVqCi1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIybXVsdGlwbGVGaWxlVXBsb2Fk
VGV4dEVqCiBfX1pON1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDIyY2FsY1Zl
cnRpY2FsUHJlZldpZHRoc0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0eWxlMTVzZXRCb3hGbGV4
R3JvdXBFagogX19aTks3V2ViQ29yZTEzUmVuZGVyTGlzdEJveDEwcmVuZGVyTmFtZUV2CkBAIC0y
NTQ5OCw3ICsyNTQxNiw2IEBAIF9fWk43V2ViQ29yZTIySFRNTEZvcm1Db250cm9sRWxlbWVudDMw
dXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlRXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxJbnB1
dEVsZW1lbnQxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTks3V2ViQ29yZTlJbnB1dFR5cGUxNnZh
bHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3JlMzN2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzM3Zh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pON1dlYkNvcmUxN1ZhbGlkYXRp
b25NZXNzYWdlNmNyZWF0ZUVQTlNfMjFGb3JtQXNzb2NpYXRlZEVsZW1lbnRFCiBfX1pON1dlYkNv
cmUxN1ZhbGlkYXRpb25NZXNzYWdlMTBzZXRNZXNzYWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlNVRpbWVySU5TXzE3VmFsaWRhdGlvbk1lc3NhZ2VFRTVmaXJlZEV2CkBAIC0yNTYwOCwx
MSArMjU1MjUsOSBAQCBfX1pON1dlYkNvcmU0NHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
Rm9yQ2hlY2tib3hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNFJhZGlvSW5wdXRUeXBlMTZ2YWx1ZU1p
c3NpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdG
b3JSYWRpb1RleHRFdgogX19aTjdXZWJDb3JlMzZ2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNt
YXRjaFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNnZh
bGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2CiBfX1pOSzdXZWJDb3JlMTZIVE1M
SW5wdXRFbGVtZW50MTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNEVtYWlsSW5w
dXRUeXBlMTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dEV2CiBfX1pO
N1dlYkNvcmUzOGpzSFRNTEZpZWxkU2V0RWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBOM0pTQzlF
eGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM2
anNIVE1MS2V5Z2VuRWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMzanNIVE1MRmllbGRT
ZXRFbGVtZW50V2lsbFZhbGlkYXRlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMw
XzEwSWRlbnRpZmllckUKQEAgLTI4NjExLDcgKzI4NTI2LDYgQEAgX19aTjdXZWJDb3JlMTFGcmFt
ZUxvYWRlcjIyZmluZEZyYW1lRm9yTmF2aWdhdGlvbkVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBf
X1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIzdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3JF
UE5TXzlFeGVjU3RhdGVFCiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MzBzZXRT
aG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdjcmFzaGVkUGx1Z2lu
VGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3Y3Jhc2hl
ZFBsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMTZTY3JpcHRDb250cm9sbGVyMTFjcmVhdGVXb3Js
ZEV2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjBhZGRVc2VyU2NyaXB0VG9Xb3JsZEVQTlNfMTVE
T01XcmFwcGVyV29ybGRFUktOM1dURjZTdHJpbmdFUktOU180S1VSTEVOUzNfMTBQYXNzT3duUHRy
SU5TM182VmVjdG9ySVM0X0xtMEVFRUVFU0RfTlNfMjNVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUVO
U18yNVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dlYkNvcmUxMFVzZXJTY3JpcHRD
MkVSS04zV1RGNlN0cmluZ0VSS05TXzRLVVJMRU5TMV8xMFBhc3NPd25QdHJJTlMxXzZWZWN0b3JJ
UzJfTG0wRUVFRUVTQl9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRU5TXzI1VXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lc0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggMGEzMTMxMmQ3NzA3YWNjY2UxNzY4MGRkNjA4MzlkNmJjN2QwYzkyNi4u
NzY0YzBkNzMzNjQ3ODVlYTVkNzE4ODhhZWUxYWE2MjExMThjNDg0NiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2NTQyLDE0ICsyNjU0Miw2
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAiCi0JCQkJPgotCQkJPC9GaWxl
PgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVxEcmFnRGF0YS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAt
MjY2OTAsMTAgKzI2NjgyLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxp
emVkU3RyaW5ncy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ5MzZkMzgyOGVkN2IzMDE0
MzI0ZTdlMWJkOGE1ZWYxYmY3NTQzYjcuLmU2NDIxYjg2ZDJiOTlhNTY5MGFjNzczNTE1OWIyYjRh
NDNjNjBmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTUxNDksNyArNTE0OSw2IEBACiAJCUJDNUE4NkI2MEMzMzY3RTgwMEVF
QTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9u
LmggKi87IH07CiAJCUJDNUM3NjJBMTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI4
MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNwcCAqLzsgfTsKIAkJQkM1Qzc2MkIx
NDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0
Zm9ybUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVDRkNBODEx
Rjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzVFQjVEQjBFODFCN0VBMDBCMjU5
NjUgLyogQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNUVCNUREMEU4
MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURDMEU4MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5l
VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQzVFQjVERjBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURFMEU4MUI5
QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MzUzLDggKzUzNTIsNiBAQAogCQlCQ0Mw
NjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcgLyog
SlNDbGllbnRSZWN0LmggKi87IH07CiAJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAq
LzsgfTsKIAkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg2MEYz
Q0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJDQzM2RUI4MTM0
MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMzZFQjYxMzQyQUEzRjAw
NEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgKi87IH07Ci0JCUJDQzM2
RUI5MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzM2RUI3MTM0MkFB
M0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgfTsKIAkJQkND
NDM4NzgwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M0Mzg3NzBFODg2
Q0M3MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkND
NTczMzUwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUx
NyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUJDQzU3MzM2MEQ2OTVCQkUwMDZFRjUx
NyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZl
bnQubW0gKi87IH07CkBAIC0xMjA1Niw3ICsxMjA1Myw2IEBACiAJCUJDNUE4NkI0MEMzMzY3RTgw
MEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNET01TZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1
Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM1Q0ZDQTgxMUY3OTMzMjAwOTlFRDA5IC8qIExv
Y2FsaXphdGlvblN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Y2FsaXphdGlvblN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUVC
NURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5bGUvQm9yZGVyVmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REMwRTgxQjhERDAwQjI1OTY1IC8q
IE91dGxpbmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPdXRsaW5l
VmFsdWUuaDsgcGF0aCA9IHN0eWxlL091dGxpbmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaDsgcGF0aCA9IHN0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMjI4MSw4ICsxMjI3Nyw2IEBACiAJCUJDQzA2NTg0MEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNDbGllbnRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzA2NTg1
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVudFJlY3RMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzM2RUI2MTM0MkFBM0YwMDRCRUVG
NyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVs
ZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1NzMzMzBE
Njk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NjkwLDggKzE5Njg0LDYgQEAKIAkJ
CQlGNTg3ODY4NDAyREUzQjg2MDFFQTQxMjIgLyogQ3Vyc29yLmggKi8sCiAJCQkJQTU3MzJCMDgx
MzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCAqLywKIAkJCQlBNTczMkIwOTEz
NkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLywKLQkJCQlCQ0MzNkVCNjEzNDJB
QTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCAqLywKLQkJCQlC
Q0MzNkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
Ki8sCiAJCQkJQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLywKIAkJ
CQlBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCAqLywKIAkJCQlBN0NGQjND
RjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmNwcCAqLywKQEAgLTE5NzI1LDcgKzE5NzE3
LDYgQEAKIAkJCQlCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6ZS5oICovLAog
CQkJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgKi8sCiAJCQkJQTdB
RDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi8sCi0JCQkJQkM1Q0ZDQTgxMUY3
OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8sCiAJCQkJQzA0NkUxQUIx
MjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovLAogCQkJCTkzNTIwN0JE
MDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8sCiAJCQkJQTgyMzlERkUw
OUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovLApAQCAtMjE0MDAsNyArMjEzOTEsNiBA
QAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcgLyogRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDA2REZBNjEzNEE0REVGMDA2
RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJC
MDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwMkUxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MzA4NSw3ICsyMzA3NSw2IEBACiAJCQkJMDZFODFFRDcwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzYzM0E3MjYxM0Q4
QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0
ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTczMkIwRDEzNkExNkM0MDA1QzhEN0MgLyogTG9j
YWxpemVkRGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxNDJDNjkxMjNGMTJCMDAwRjVCRDRD
IC8qIExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3QkUwOUJENDEw
QTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3OTgs
NyArMjQ3ODcsNiBAQAogCQkJCTQxNjJBNDUwMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQTNENThFMTAxQzE1MkQwMDMx
NkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQw
NkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlCQ0MzNkVCODEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNjdFQkY1MTAyOTYy
QkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRDMxNjAyQjEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlEU1BLZXJuZWwuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkQxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYTNhNDg2MDQ5NDEyYWEwMTU0M2IyYzJkOGJjZDJiNGY2ZGFjY2U0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw5NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQotI2lmIFVTRShQTEFURk9S
TV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4K
LSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KLQotI2lmIFVTRShDRikKLSNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci0vLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3byByZWFzb25zOgotLy8gIDEp
IEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBmb3JtYXQgc3Ry
aW5nLgotLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRkIHN5bnRheC4KLS8vIE5vdGUg
dGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIgdG8g
dmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQotLy8gdHlwZSBhY2NvcmRpbmcgdG8g
c2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFyZC4KLXN0YXRpYyBTdHJpbmcg
Zm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4uLikKLXsKLSNpZiBVU0UoQ0Yp
Ci0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3RhcnQoYXJndW1lbnRzLCBmb3JtYXQp
OwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZTdHJpbmcoQWRvcHRDRiwgZm9y
bWF0LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0
KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygwLCAwLCBmb3Jt
YXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7Ci0gICAgdmFfZW5kKGFyZ3VtZW50cyk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIHZhX2xpc3Qg
YXJndW1lbnRzOwotICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKLSAgICBRU3RyaW5n
IHJlc3VsdDsKLSAgICByZXN1bHQudnNwcmludGYoZm9ybWF0LmxhdGluMSgpLmRhdGEoKSwgYXJn
dW1lbnRzKTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICByZXR1cm4gcmVzdWx0OwotI2Vs
c2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmb3JtYXQ7Ci0jZW5kaWYKLX0K
LQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKLXN0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3Vw
TWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKLXsKLSAgICBpZiAob3JpZ2luYWwuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gb3JpZ2luYWw7Ci0gICAgCi0gICAgLy8gVHJ1bmNhdGUg
dGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGgg
QXBwS2l0LgotICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3Vw
TWVudUl0ZW0gPSAyNDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMs
ICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7Ci0gICAgCi0gICAgU3RyaW5nIHRyaW1tZWQgPSBv
cmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJhY3Rl
cnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJlck9m
R3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOwotICAgIHJldHVybiBudW1iZXJPZkNo
YXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQgOiB0cmltbWVkLmxlZnQobnVt
YmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwotfQotI2VuZGlmCi0KLURlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneSYgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzaGFyZWQoKQotewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LCBkZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksICgpKTsKLSAgICByZXR1cm4gZGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5OwotfQotCi1EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkRlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneSgpCi17Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkiLCAiYWx0IHRleHQgZm9y
IDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJl
bCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwg
Zm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4
LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsCi0gICAgICAgICJ0ZXh0IHRoYXQgYXBwZWFycyBh
dCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBh
ICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9y
bXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9vc2VyIGJ1dHRv
biB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBm
aWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQg
YmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
ZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3RlZCIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9uTm9G
aWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBmaWxl
cyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1M
IGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBt
dWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+
IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotI2lmIFBMQVRGT1JN
KE1BQykKLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvcHlJbWFnZVVua25v
d25GaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVu
a25vd24gZmlsZW5hbWUiKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVu
IExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29u
dGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
T3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVu
IEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci0jaWYgUExBVEZPUk0oUVQpCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3Mg
bWVudSBpdGVtIik7Ci19Ci0jZW5kaWYKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBWaWRl
byBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2lu
ZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2lu
ZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
b3B5IFZpZGVvIEFkZHJlc3MiLCAiQ29weSBWaWRlbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJDb3B5IEF1ZGlvIEFkZHJlc3Mg
TG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENvbnRyb2xzIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdF
bnRlclZpZGVvRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkVudGVy
IEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IiwgIk1l
ZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk11dGUiLCAi
TWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIs
ICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJCYWNrIiwg
IkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1N0b3AoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIiwgIlN0b3AgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
UmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Bh
c3RlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotI2lmIFBMQVRGT1JNKEdUSykKLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiRGVsZXRlIjsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzKCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiSW5wdXQgTWV0aG9kcyI7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1VuaWNvZGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJVbmljb2Rl
IjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWxl
Y3RBbGwoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJTZWxlY3QgQWxs
IjsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
SWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGVhcm4gU3Bl
bGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2Vi
KCkKLXsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlEZWZhdWx0U2VhcmNo
UHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92
aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2Vh
cmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUgY29udGV4dCBtZW51IGl0
ZW0iKTsKLSNlbmRpZgotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3Rl
ZFN0cmluZykKLXsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIFVOVVNFRF9QQVJBTShzZWxlY3RlZFN0cmlu
Zyk7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIsICJM
b29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLSNlbHNlCi0jaWYgVVNF
KENGKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VsZWN0ZWRDRlN0cmluZyhBZG9wdENG
LCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmluZykuY3JlYXRl
Q0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCJMb29rIFVwIOKAnCVA4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBz
ZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCDigJw8c2VsZWN0aW9uPuKAnSIsICJMb29rIFVwIGNv
bnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLnJlcGxhY2UoIjxzZWxlY3Rpb24+
IiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpKTsKLSNl
bmRpZgotI2VuZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
T3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFt
bWFyKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIEdyYW1tYXIiLCAiSWdu
b3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAiU3BlbGxpbmcg
YW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVs
KGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBp
dGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNwZWxsaW5nIHdo
aWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxp
bmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFyIFdpdGggU3Bl
bGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9udCIsICJGb250
IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVW5k
ZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiUGFyYWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0aW9uIGNvbnRl
eHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlv
biBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVjdGlv
biBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJp
Z2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi0j
aWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdodCBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJTaG93IEZvbnRzIiwgIlNob3cgZm9udHMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3R5
bGVzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3R5bGVzLi4uIiwgIlN0eWxlcyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnU3BlZWNoTWVudSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWVjaCIsICJT
cGVlY2ggY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdGFydCBTcGVha2luZyIsICJTdGFydCBzcGVha2luZyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIsICJDb3JyZWN0IFNw
ZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9u
c01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJzdGl0dXRpb25zIiwgIlN1
YnN0aXR1dGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25z
KGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykgCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJTaG93IFN1YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnU21hcnRDb3B5UGFzdGUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBD
b3B5L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU21h
cnRRdW90ZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBRdW90ZXMiLCAi
U21hcnQgUXVvdGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3MgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
VGV4dFJlcGxhY2VtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVGV4dCBSZXBs
YWNlbWVudCIsICJUZXh0IFJlcGxhY2VtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
Zm9ybWF0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJUcmFuc2Zvcm1h
dGlvbnMiLCAiVHJhbnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtl
VXBwZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBVcHBlciBDYXNl
IiwgIk1ha2UgVXBwZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNl
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBMb3dlciBDYXNlIiwgIk1ha2Ug
TG93ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiQ2FwaXRhbGl6ZSIsICJDYXBpdGFsaXplIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiByZXBsYWNlZFN0cmluZzsKLX0KLQot
I2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSW5z
cGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Igb25s
eSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBm
aWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVSZWNlbnRTZWFy
Y2hlc1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMi
LCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xp
Y2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRp
dGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IkNsZWFyIFJlY2VudCBTZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJjaGVzIG1l
bnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpBWFdlYkFyZWFUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiSFRNTCBjb250ZW50IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3Igd2ViIGFyZWEiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
QVhMaW5rVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpbmsiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlzdE1hcmtlclRleHQoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJsaXN0IG1hcmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIGxpc3QgbWFya2VyIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW1h
Z2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1hZ2UgbWFwIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYSGVhZGluZ1RleHQo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGluZ3MiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0aW9uIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRlZmluaXRpb24i
LCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKLX0KLQotI2lmIFBMQVRGT1JNKE1BQykKLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3Qg
U3RyaW5nJiBhcmlhVHlwZSkKLXsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlv
bkFsZXJ0IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7Ci0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3Vw
IHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJB
UklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlh
bG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9n
LiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGEgY29uc29sZSBsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklB
QXBwbGljYXRpb25NYXJxdWVlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1
ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUu
Iik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uU3RhdHVzIikKLSAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIHN0YXR1cyIsICJBbiBBUklB
IGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgc3RhdHVzIHVwZGF0ZS4iKTsgICAg
Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25UaW1lciIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGFuIHVwZGF0aW5nIHRpbWVyLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUg
PT0gIkFSSUFEb2N1bWVudCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkb2N1bWVu
dCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgZG9jdW1lbnQu
Iik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50QXJ0aWNsZSIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBRG9jdW1lbnROb3RlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5v
dGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG5vdGUgaW4g
YSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRSZWdp
b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24gaW4gYSBkb2N1
bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtBcHBsaWNhdGlv
biIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBsaWNhdGlvbiIsICJBbiBBUklB
IGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFwcGxpY2F0aW9uLiIpOyAgICAK
LSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0Jhbm5lciIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJiYW5uZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgYWN0cyBhcyBhIGJhbm5lci4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFu
ZG1hcmtDb21wbGVtZW50YXJ5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbXBs
ZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHJl
Z2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5
cGUgPT0gIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImNvbnRlbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFp
bnMgY29udGVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtNYWlu
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1haW4iLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9ydGlvbiBvZiB0aGUgd2Vic2l0ZS4iKTsg
ICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBh
IHdlYnNpdGUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrU2VhcmNo
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlYXJjaCIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBhIHNlYXJjaCBmZWF0dXJlIG9mIGEgd2Vic2l0
ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVyZmFjZVRvb2x0aXAi
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsgICAgCi0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
dGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRo
ZSBjb250ZW50IG9mIGEgdGFiLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50
TWF0aCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLSNlbmRpZgotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIg
d2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhSYWRpb0J1dHRvbkFjdGlv
blZlcmIoKSAKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNs
aWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0
IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFzIHVzZWQgYnkgYWNj
ZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpB
WENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVu
IGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHki
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhVbmNoZWNrZWRD
aGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjaGVjayIs
ICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhbiB1bmNoZWNr
ZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTWVudUxpc3RBY3Rpb25WZXJi
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAic2VsZWN0IjsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhNZW51TGlzdFBvcHVwQWN0aW9u
VmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInNlbGVjdCI7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlua0FjdGlvblZlcmIo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3RhdGluZyB0aGUg
YWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5
IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNaXNz
aW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnaW4gaXMgbWlz
c2luZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpjcmFzaGVk
UGx1Z2luVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gRmFpbHVy
ZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3QgcHJvY2VzcyBoYXMgY3Jh
c2hlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptdWx0aXBs
ZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCi17Ci0gICAgcmV0dXJuIGZv
cm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJMYWJlbCB0byBk
ZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1cGxvYWQgY29u
dHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVzKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dW5rbm93bkZpbGVTaXplVGV4dCgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6
ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi0jaWYgUExBVEZPUk0oV0lOKQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp1cGxvYWRGaWxlVGV4dCgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInVwbG9hZCI7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmFsbEZpbGVzVGV4dCgpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gImFsbCBmaWxlcyI7Ci19Ci0KLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpi
dWlsdEluUERGUGx1Z2luTmFtZSgpCi17Ci0gICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4KLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0IGJ1aWx0LWluIFBERiIsICJQc2V1ZG8gcGx1
Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6cGRmRG9jdW1lbnRU
eXBlRGVzY3JpcHRpb24oKQotewotICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCi0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBvcnRhYmxlIERvY3VtZW50IEZvcm1hdCIsICJEZXNjcmlwdGlv
biBvZiB0aGUgKG9ubHkpIHR5cGUgc3VwcG9ydGVkIGJ5IFBERiBwc2V1ZG8gcGx1Zy1pbi4gVmlz
aWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtNTEyKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRs
ZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtMTAyNCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIjEwMjQgKE1lZGl1bSBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4g
cG9wLXVwIG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMjA0OCAo
SGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6a2V5Z2VuS2V5Y2hhaW5J
dGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBob3N0Q0ZTdHJpbmcoQWRvcHRDRiwgaG9zdC5jcmVhdGVDRlN0cmluZygpKTsKLSAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIktleSBmcm9tICVAIiwgIk5h
bWUgb2Yga2V5Y2hhaW4ga2V5IGdlbmVyYXRlZCBieSB0aGUgS0VZR0VOIHRhZyIpLCBob3N0Q0ZT
dHJpbmcuZ2V0KCkpOwotfQotCi0jaWYgUExBVEZPUk0oSU9TKQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90IGNvdW50KQot
ewotICAgIHN3aXRjaCAoY291bnQpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBtdWx0aXBs
ZT4gd2hlbiBubyA8b3B0aW9uPiBpdGVtcyBhcmUgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAg
IGNhc2UgMToKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEgSXRlbSIsICJQcmVzZW50
IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gYSBzaW5nbGUgPG9wdGlvbj4gaXMg
c2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJXp1IEl0ZW1zIiwgIlByZXNlbnQgdGhl
IG51bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9uPiBpdGVtcyBpbiBhIDxzZWxlY3QgbXVsdGlwbGU+
IGVsZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3VudCk7Ci0gICAgfQotfQotI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKLXsKLSNpZiBVU0UoQ0YpCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRv
cHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgUmV0YWluUHRyPENGTG9jYWxl
UmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsKLSAgICBSZXRhaW5Q
dHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBDRk51bWJlckZvcm1h
dHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRlckRlY2ltYWxTdHls
ZSkpOwotCi0gICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOwotICAgIFJldGFpblB0cjxD
Rk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50
VHlwZSwgJndpZHRoSW50KSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB3aWR0aFN0cmlu
ZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1iZXIoMCwgZm9y
bWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOwotCi0gICAgaW50IGhlaWdodEludCA9IHNpemUu
aGVpZ2h0KCk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQoQWRvcHRDRiwgQ0ZO
dW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkpOwotICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVy
Q3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhlaWdodC5nZXQoKSkp
OwotCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAl
QMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2Vz
IG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCks
IHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3Jl
YXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25l
IGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZT
dHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0jZW5kaWYKLSNlbHNl
Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCI8ZmlsZW5h
bWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2Ug
KHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53aWR0aCgpLCBzaXpl
LmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwotI2VuZGlmCi19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om1lZGlhRWxlbWVudExvYWRpbmdT
dGF0ZVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptZWRpYUVsZW1lbnRM
aXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2
ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNo
aW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcm
IG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAgICBp
ZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
InZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1lID09ICJNdXRl
QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0b24i
KTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxheSBi
dXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZv
ciBwYXVzZSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1
bWIiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRodW1i
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIiKTsK
LSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJSZXR1
cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVy
biB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJldHVy
biB0byByZWFsIHRpbWUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlz
cGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOwot
ICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKLSAgICBpZiAobmFtZSA9PSAiU3Rh
dHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKLSAgICBpZiAo
bmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50ZXIg
ZnVsbHNjcmVlbiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24i
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vzc2li
aWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0
IHJldmVyc2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1
dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0aW9u
cyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNhcHRp
b25zIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24i
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBi
dXR0b24iKTsKLQotICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIgc2hv
dWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5LgotICAg
IGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwot
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xF
bGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09ICJB
dWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXVkaW8gZWxlbWVu
dCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAgICBpZiAo
bmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZp
ZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9sbGVyIik7
Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG11
dGUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciB1biBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJQbGF5QnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJlZ2luIHBsYXliYWNrIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXVzZSBwbGF5
YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGF1c2UgYnV0dG9uIik7Ci0gICAg
aWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtb3Zp
ZSB0aW1lIHNjcnViYmVyIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0aW1lbGluZSBz
bGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7Ci0gICAgaWYgKG5hbWUgPT0g
IlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIG1vdmll
IGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IganVtcCBiYWNr
IDMwIHNlY29uZHMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVC
dXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHN0cmVhbWluZyBt
b3ZpZSB0byByZWFsIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHJldHVybiBz
dHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJD
dXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY3VycmVu
dCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGVs
YXBzZWQgdGltZSBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNw
bGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm51bWJlciBvZiBzZWNvbmRzIG9m
IG1vdmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcmVtYWluaW5n
IHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgc3RhdHVzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlzcGxheSIpOwotICAgIGlmIChuYW1l
ID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVr
IHF1aWNrbHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCByZXdpbmQg
YnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBmb3J3YXJkIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0g
IkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGxheSBt
b3ZpZSBpbiBmdWxsc2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGVu
dGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0
aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGFydCBkaXNwbGF5
aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Igc2hvdyBj
bG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkhpZGVDbG9zZWRDYXB0
aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdG9wIGRpc3BsYXlp
bmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBoaWRlIGNs
b3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsKLSAgICBpZiAo
IWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5kZWZpbml0
ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1lZGlh
IGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOwotCi0gICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2Fz
dDxpbnQ+KGZhYnNmKHRpbWUpKTsgCi0gICAgaW50IGRheXMgPSBzZWNvbmRzIC8gKDYwICogNjAg
KiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKLSAgICBpbnQgbWlu
dXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAlPSA2MDsKLQotICAgIGlm
IChkYXlzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJ
TkcoIiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29uZHMiLCAiYWNj
ZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+PSAx
IGRheSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7Ci0gICAgaWYgKGhvdXJzKQot
ICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQg
aG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4
dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMiKSwgaG91cnMs
IG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIGlmIChtaW51dGVzKQotICAgICAgICByZXR1cm4gZm9y
bWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgbWludXRlcyAlMiRkIHNlY29u
ZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2
YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBzZWNvbmRzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPCA2MCBzZWNv
bmRzIiksIHNlY29uZHMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVxdWly
ZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOwotfQotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUg
bm90IG1hdGNoaW5nIHR5cGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2Ug
Zm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNj
b3JkaW5nIHRvIHBhdHRlcm4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9s
IGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3Ro
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250
cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVy
Zmxvd1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBo
aWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVjdGluZyB0aGUg
c3RlcCBhdHRyaWJ1dGUiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhMjJlOWRmNTE2OTk2YTgzNzdhZWQ0YzY4OTQzMTVkZDliYWYxZWFkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneV9oCi0jZGVmaW5lIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0K
LSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2luY2x1ZGUgIkxvY2FsaXphdGlvblN0
cmF0ZWd5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5IDogcHVibGljIExv
Y2FsaXphdGlvblN0cmF0ZWd5IHsKLXB1YmxpYzoKLSAgICBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3koKTsKLQotICAgIHN0YXRpYyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kmIHNoYXJl
ZCgpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3Vi
bWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNo
b29zZUZpbGVMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0
aXBsZUZpbGVzTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2Vs
ZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0
ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQo
KTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93
bkZpbGVMYWJlbCgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1h
Z2VUb0NsaXBib2FyZCgpOwotI2lmIFBMQVRGT1JNKFFUKQotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Ci0jZW5kaWYKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdG9wKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
UmVsb2FkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKLSNpZiBQTEFURk9S
TShHVEspCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpOwotI2VuZGlmCi0jaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdyk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3BlZWNoTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1N0YXJ0U3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdG9wU3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhib29sIHNob3cpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsKLSNlbmRpZgot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3co
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xp
bmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYU11dGUoKTsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICB2
aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgQVhXZWJBcmVhVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTGlua1RleHQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEhlYWRpbmdUZXh0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCk7Ci0jaWYgUExBVEZP
Uk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3Qg
U3RyaW5nJiBhcmlhVHlwZSk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEJ1dHRvbkFj
dGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigp
OwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpOwotICAgIHZpcnR1
YWwgU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0UG9w
dXBBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY3Jhc2hlZFBsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtdWx0aXBsZUZpbGVV
cGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwotICAgIHZpcnR1YWwgU3RyaW5nIHVu
a25vd25GaWxlU2l6ZVRleHQoKTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJp
bmcgdXBsb2FkRmlsZVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBhbGxGaWxlc1RleHQoKTsK
LSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBidWlsdEluUERG
UGx1Z2luTmFtZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHBkZkRvY3VtZW50VHlwZURlc2NyaXB0
aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTEwMjQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXln
ZW5NZW51SXRlbTIwNDgoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1O
YW1lKGNvbnN0IFN0cmluZyYgaG9zdCk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwg
U3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCk7Ci0jZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBpbWFn
ZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJik7
Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0
KGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURl
c2NyaXB0aW9uKGZsb2F0KTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZh
bHVlTWlzc2luZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBh
dHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZVVuZGVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlT3ZlcmZsb3dUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KCk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2VuZGlmIC8vIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9u
U3RyYXRlZ3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZhYjc2NGI4NmFlZWNm
ZGU4MDAzOGY1ZDJmMzI5MTdmNTI4ZjlkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJh
dGVneS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDEwIElnYWxpYSBTLkwKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMb2NhbGl6YXRpb25TdHJhdGVn
eV9oCi0jZGVmaW5lIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLQotI2lmIFVTRShQTEFURk9STV9T
VFJBVEVHSUVTKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBJbnRTaXplOwotCi1jbGFzcyBMb2NhbGl6YXRpb25TdHJhdGVneSB7Ci1w
dWJsaWM6ICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSA9IDA7Ci0KLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpID0g
MDsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5l
d1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZEltYWdlVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkgPSAwOwotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpID0gMDsKLSNlbmRpZgotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDdXQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnUGFzdGUoKSA9IDA7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0RlbGV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVW5pY29kZSgpID0gMDsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSA9IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBz
ZWxlY3RlZFN0cmluZykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ln
bm9yZUdyYW1tYXIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkg
PSAwOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTaG93Rm9udHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3R5bGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1Nob3dDb2xvcnMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3BlZWNoTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdGFydFNwZWFraW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1N0b3BTcGVha2luZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJvb2wgc2hvdykg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3Rl
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVz
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVz
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3Mo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2Vt
ZW50KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9y
bWF0aW9uc01lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWFrZVVwcGVyQ2FzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNYWtlTG93ZXJDYXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NhcGl0YWxpemUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKSA9IDA7Ci0jZW5kaWYK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRv
dygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9J
bk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVu
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgp
ID0gMDsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLQotICAgIHZpcnR1YWwgU3Ry
aW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLQotICAgIHZpcnR1
YWwgU3RyaW5nIEFYV2ViQXJlYVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5r
VGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYSGVhZGluZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9u
TGlzdFRlcm1UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0
cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpID0gMDsK
LSNlbmRpZgotICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFY
TWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5r
QWN0aW9uVmVyYigpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVtYmVyT2ZG
aWxlcykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKSA9IDA7
Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJpbmcgdXBsb2FkRmlsZVRleHQo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWxsRmlsZXNUZXh0KCkgPSAwOwotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgYnVpbHRJblBERlBsdWdpbk5h
bWUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24o
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGtleWdlbk1lbnVJdGVtMjA0OCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5L
ZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkgPSAwOwotI2VuZGlmCi0KLSAgICB2
aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IElu
dFNpemUmIHNpemUpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxlbWVudExvYWRp
bmdTdGF0ZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJy
b2FkY2FzdFN0YXRlVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJikg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZs
b2F0KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UGF0dGVybk1pc21hdGNoVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVRvb0xvbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0g
ICAgdmlydHVhbCB+TG9jYWxpemF0aW9uU3RyYXRlZ3koKQotICAgIHsKLSAgICB9Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lF
UykKLQotI2VuZGlmIC8vIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMTQwOWJiZjMxYjFhYjJlM2I3NGVl
MzQwNTdiNjRlN2U4MGJjZGUwYy4uYTUxNDNhY2NiMTY5MTEzZTMwZjQ1NWY3ZDlmYWRmMmExZDU4
NTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNiwgMjAwOSwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAt
MjcsNzExICsyNyw5MjkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIK
ICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2lmIFVTRShDRikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYKKyNpbmNsdWRl
IDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgorCisjaWYgUExBVEZPUk0oTUFDKQorI2lu
Y2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKKy8vIFdlIGNhbid0IHVzZSBT
dHJpbmc6OmZvcm1hdCBmb3IgdHdvIHJlYXNvbnM6CisvLyAgMSkgSXQgZG9lc24ndCBoYW5kbGUg
bm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gdGhlIGZvcm1hdCBzdHJpbmcuCisvLyAgMikgSXQgZG9l
c24ndCBoYW5kbGUgdGhlICUyJGQgc3ludGF4LgorLy8gTm90ZSB0aGF0IGJlY2F1c2UgfGZvcm1h
dHwgaXMgdXNlZCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byB2YV9zdGFydCwgaXQgY2Fubm90
IGJlIGEgcmVmZXJlbmNlCisvLyB0eXBlIGFjY29yZGluZyB0byBzZWN0aW9uIDE4LjcvMyBvZiB0
aGUgQysrIE4xOTA1IHN0YW5kYXJkLgorc3RhdGljIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJp
bmcoU3RyaW5nIGZvcm1hdCwgLi4uKQoreworI2lmIFVTRShDRikKKyAgICB2YV9saXN0IGFyZ3Vt
ZW50czsKKyAgICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7CisgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBmb3JtYXRDRlN0cmluZyhBZG9wdENGLCBmb3JtYXQuY3JlYXRlQ0ZTdHJpbmco
KSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQoQWRvcHRDRiwgQ0ZTdHJpbmdD
cmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdENGU3RyaW5nLmdldCgpLCBh
cmd1bWVudHMpKTsKKyAgICB2YV9lbmQoYXJndW1lbnRzKTsKKyAgICByZXR1cm4gcmVzdWx0Lmdl
dCgpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmb3JtYXQ7Cisj
ZW5kaWYKK30KIAotc3RhdGljIGlubGluZSBMb2NhbGl6YXRpb25TdHJhdGVneSogbG9jYWxpemF0
aW9uU3RyYXRlZ3koKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKK3N0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3Ry
aW5nRm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKIHsKLSAgICBpZiAo
aGFzUGxhdGZvcm1TdHJhdGVnaWVzKCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKKyAgICBpZiAob3JpZ2luYWwuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gb3JpZ2luYWw7CiAKLSAgICByZXR1cm4gJkRlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6c2hhcmVkKCk7CisgICAgLy8gVHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBp
dCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGggQXBwS2l0LgorICAgIHVu
c2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0gPSAyNDsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMsICgmaG9yaXpvbnRhbEVs
bGlwc2lzLCAxKSk7CisKKyAgICBTdHJpbmcgdHJpbW1lZCA9IG9yaWdpbmFsLnN0cmlwV2hpdGVT
cGFjZSgpOworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVycyA9IG51bUNoYXJhY3RlcnNJ
bkdyYXBoZW1lQ2x1c3RlcnModHJpbW1lZCwgbWF4TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5M
b29rdXBNZW51SXRlbSk7CisgICAgcmV0dXJuIG51bWJlck9mQ2hhcmFjdGVycyA9PSB0cmltbWVk
Lmxlbmd0aCgpID8gdHJpbW1lZCA6IHRyaW1tZWQubGVmdChudW1iZXJPZkNoYXJhY3RlcnMpICsg
ZWxsaXBzaXM7CiB9CisjZW5kaWYKIAogU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5pbnB1dEVsZW1lbnRBbHRUZXh0KCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBl
bGVtZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0
bGUsIG9yIHZhbHVlIik7CiB9CiAKIFN0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwg
Zm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAKIFN0cmluZyBz
ZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5zZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3
b3JkczogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dCB0aGF0IGFwcGVhcnMgYXQg
dGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0gb2YgYSAn
c2VhcmNoYWJsZSBpbmRleCciKTsKIH0KIAogU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJl
bCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnN1Ym1pdEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVs
dCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAK
IFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBj
aG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKIH0KIAogU3RyaW5nIGZpbGVCdXR0
b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5maWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBm
aWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQg
YmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7CiB9CiAKIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZp
bGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Im5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQg
aW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKIH0KIAogU3RyaW5nIGZp
bGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
ZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVk
IGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwog
fQogCiBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFp
bHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKIH0KIAogI2lmIFBMQVRG
T1JNKE1BQykKIFN0cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVua25vd24gZmlsZW5hbWUiKTsK
IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBp
biBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlu
a2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3Bl
biBJbWFnZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFn
ZVRvRGlzaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiRG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBJbWFn
ZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKLSNpZiBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCi1TdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgp
OwotfQotI2VuZGlmCi0KIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dp
bmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Ik9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdD
b3B5KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnR29CYWNr
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3
YXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZvcndhcmQiLCAiRm9yd2FyZCBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0
b3AoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RvcCIsICJTdG9wIGNvbnRleHQgbWVu
dSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ3V0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogI2lmIFBMQVRGT1JNKFFUKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1NlbGVjdEFsbCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJTZWxlY3Qg
QWxsIjsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91
bmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyBHdWVz
c2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAog
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBT
cGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTGVhcm5TcGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFy
Y2hJblNwb3RsaWdodCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdodCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFy
Y2hXZWIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTZWFyY2hXZWIoKTsKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0Nv
cHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICByZXR1cm4gZm9ybWF0
TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3
aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUg
aW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKKyNlbHNlCisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0xvb2tV
cEluRGljdGlvbmFyeShzZWxlY3RlZFN0cmluZyk7CisjaWYgZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBVTlVTRURf
UEFSQU0oc2VsZWN0ZWRTdHJpbmcpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVw
IGluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVt
Iik7CisjZWxzZQorI2lmIFVTRShDRikKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlbGVj
dGVkQ0ZTdHJpbmcoQWRvcHRDRiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2Vs
ZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiTG9vayBVcCDigJwlQOKAnSIsICJMb29rIFVwIGNvbnRl
eHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLCBzZWxlY3RlZENGU3RyaW5nLmdldCgp
KTsKKyNlbHNlCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCcPHNlbGVjdGlv
bj7igJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQiKS5y
ZXBsYWNlKCI8c2VsZWN0aW9uPiIsIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKHNl
bGVjdGVkU3RyaW5nKSk7CisjZW5kaWYKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkxpbmsoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJP
cGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJZ25vcmUgR3JhbW1hciBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdN
ZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnU3BlbGxpbmdNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWxsaW5n
IGFuZCBHcmFtbWFyIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9v
bCBzaG93KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChzaG93KTsKKyAgICBpZiAoc2hvdykKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBp
dGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5k
IEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDaGVja1NwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcgd2hp
bGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5n
IiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7
CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0Zv
bnRzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnU2hvd0ZvbnRzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgRm9udHMi
LCAiU2hvdyBmb250cyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0l0YWxpYygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJ
dGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0eWxlcy4uLiIsICJTdHlsZXMg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dD
b2xvcnMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTaG93Q29sb3JzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgQ29s
b3JzIiwgIlNob3cgY29sb3JzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTcGVlY2giLCAiU3BlZWNoIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RhcnQgU3BlYWtpbmciLCAiU3RhcnQgc3Bl
YWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1N0b3BTcGVha2luZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
ICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXJh
Z3JhcGggRGlyZWN0aW9uIiwgIlBhcmFncmFwaCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1RleHREaXJlY3Rpb25NZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlv
biBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEZWZh
dWx0RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVm
YXVsdCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmlnaHQgdG8gTGVmdCIs
ICJSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShN
QUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNh
bGx5KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkiLCAiQ29ycmVjdCBTcGVsbGlu
ZyBBdXRvbWF0aWNhbGx5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAiU3Vic3RpdHV0aW9ucyBjb250
ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
dWJzdGl0dXRpb25zKGJvb2wgc2hvdykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoc2hvdyk7CisgICAgaWYg
KHNob3cpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFN1YnN0aXR1dGlvbnMi
LCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vi
c3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiU21hcnQgQ29weS9QYXN0ZSIsICJTbWFydCBDb3B5L1Bhc3RlIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3Rlcygp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1NtYXJ0UXVvdGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0IFF1b3RlcyIs
ICJTbWFydCBRdW90ZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250ZXh0IG1lbnUgaXRlbSIp
OwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcygpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3Mo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3Mg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHRS
ZXBsYWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJUZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFjZW1lbnQgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdU
cmFuc2Zvcm1hdGlvbnNNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRyYW5zZm9y
bWF0aW9ucyIsICJUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVyIENhc2UiLCAiTWFrZSBVcHBl
ciBDYXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNYWtlTG93ZXJDYXNlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNlIGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6
ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDYXBpdGFsaXplIiwgIkNhcGl0YWxpemUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5n
ZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhyZXBsYWNlZFN0
cmluZyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVwbGFjZWRTdHJpbmc7
CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVv
IGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93IiwgIk9w
ZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlu
a1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRk
cmVzcyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
b3B5IEF1ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJDb250cm9scyIsICJNZWRpYSBDb250cm9scyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJFbnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBsYXkg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwg
Ik1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAgICAgCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAiSW5zcGVjdCBFbGVt
ZW50IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKIAogU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVz
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyByZWNlbnQgc2VhcmNoZXMiLCAi
TGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9u
IHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBiZWVuIHBlcmZv
cm1lZCIpOwogfQogCi1TdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCAoKQorU3Ry
aW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0ICgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0
ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBm
aWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7CiB9CiAKIFN0cmluZyBz
ZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVzIiwgIm1lbnUgaXRl
bSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdzIGNvbnRlbnRzIik7
CiB9CiAKIFN0cmluZyBBWFdlYkFyZWFUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+QVhXZWJBcmVhVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJI
VE1MIGNvbnRlbnQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB3ZWIgYXJl
YSIpOwogfQogCiBTdHJpbmcgQVhMaW5rVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPkFYTGlua1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygibGlu
ayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpbmsiKTsKIH0KIAogU3Ry
aW5nIEFYTGlzdE1hcmtlclRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5BWExpc3RNYXJrZXJUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpc3Qg
bWFya2VyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbGlzdCBtYXJrZXIi
KTsKIH0KIAogU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+QVhJbWFnZU1hcFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1hZ2Ug
bWFwIik7CiB9CiAKIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+QVhIZWFkaW5nVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGlu
Z3MiKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJtIiwgInRlcm0gd29yZCBvZiBhIGRlZmluaXRp
b24iKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3REZWZpbml0
aW9uVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkZWZpbml0aW9uIiwgImRlZmlu
aXRpb24gcGhyYXNlIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgQVhBUklBQ29u
dGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5BWEFSSUFDb250ZW50R3JvdXBUZXh0KGFyaWFUeXBlKTsKKyAg
ICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0IikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGFjdHMgYXMgYW4gYWxlcnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRp
b25BbGVydERpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCBkaWFs
b2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBk
aWFsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9nLiIpOworICAgIGlmIChhcmlhVHlwZSA9
PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxv
ZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgY29uc29sZSBs
b2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25NYXJxdWVlIikKKyAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUuIik7CisgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
YXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxp
Y2F0aW9uVGltZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZXIiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiB1cGRhdGluZyB0aW1lci4i
KTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhh
dCBhY3RzIGFzIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1l
bnRBcnRpY2xlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFydGljbGUiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhcnRpY2xlLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50Tm90ZSIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJub3RlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMg
YXMgYSBub3RlIGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9j
dW1lbnRSZWdpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24g
aW4gYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0FwcGxp
Y2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXBwbGljYXRpb24uIik7
CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtCYW5uZXIiKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiYmFubmVyIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGFjdHMgYXMgYSBiYW5uZXIuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1h
cmtDb21wbGVtZW50YXJ5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbXBsZW1l
bnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHJlZ2lv
biBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAi
QVJJQUxhbmRtYXJrQ29udGVudEluZm8iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
Y29udGVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBjb250
ZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrTWFpbiIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYWluIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91
cCB0aGF0IGlzIHRoZSBtYWluIHBvcnRpb24gb2YgdGhlIHdlYnNpdGUuIik7CisgICAgaWYgKGFy
aWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQg
Y29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBhIHdlYnNpdGUuIik7Cisg
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGNvbnRhaW5zIGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOworICAgIGlmIChhcmlh
VHlwZSA9PSAiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInRvb2x0aXAiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0
cyBhcyBhIHRvb2x0aXAuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNz
aWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRh
aW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KICNl
bmRpZgogICAgIAogU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQnV0dG9uQWN0aW9uVmVyYigpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwg
b2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHki
KTsKIH0KIAogU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRo
YXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkg
YWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhUZXh0RmllbGRBY3Rpb25WZXJi
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRlIiwgIlZlcmIgc3RhdGluZyB0
aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVsZCBpcyBzZWxlY3RlZCwg
YXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWENoZWNrZWRDaGVja0Jv
eEFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWENo
ZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5j
aGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGNo
ZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9
CiAKIFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0
aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2Vk
LCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYTGlua0FjdGlvblZl
cmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWExpbmtBY3Rpb25W
ZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRo
ZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQg
YnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVy
YigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTWVudUxpc3RQb3B1
cEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0
IjsKIH0KIAogU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0IjsKIH0KIAogU3RyaW5nIG1pc3NpbmdQbHVn
aW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWlzc2luZ1Bs
dWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWlzc2luZyBQbHVnLWluIiwg
IkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3NpbmciKTsKIH0KIAog
U3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y3Jhc2hlZFBsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
UGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCBpZiBwbHVnaW4gaG9zdCBw
cm9jZXNzIGhhcyBjcmFzaGVkIik7CiB9CiAKIFN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0
KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPm11bHRpcGxlRmlsZVVwbG9hZFRleHQobnVtYmVyT2ZGaWxlcyk7CisgICAgcmV0dXJu
IGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJMYWJlbCB0
byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1cGxvYWQg
Y29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVzKTsKIH0K
IAogU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT51bmtub3duRmlsZVNpemVUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3Rpbmcg
aXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oV0lOKQogU3RyaW5nIHVwbG9hZEZpbGVUZXh0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dXBsb2FkRmlsZVRleHQoKTsK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAidXBsb2FkIjsKIH0KIAogU3RyaW5n
IGFsbEZpbGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmFs
bEZpbGVzVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJhbGwgZmls
ZXMiOwogfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgYnVpbHRJblBERlBs
dWdpbk5hbWUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5idWlsdElu
UERGUGx1Z2luTmFtZSgpOworICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIldlYktpdCBidWlsdC1pbiBQREYiLCAiUHNldWRvIHBsdWctaW4gbmFt
ZSwgdmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7CiB9CiAK
IFN0cmluZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPnBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uKCk7CisgICAgLy8g
QWxzbyBleHBvc2VkIHRvIERPTS4KKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUG9ydGFibGUg
RG9jdW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkgdHlwZSBzdXBwb3J0
ZWQgYnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBw
YWdlIGluIFNhZmFyaS4iKTsKIH0KIAogU3RyaW5nIGtleWdlbk1lbnVJdGVtNTEyKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0ZW01MTIoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRs
ZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5NZW51SXRlbTEw
MjQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXlnZW5NZW51SXRl
bTEwMjQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAyNCAoTWVkaXVtIEdyYWRlKSIs
ICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwogfQogCiBTdHJpbmcg
a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+a2V5Z2VuTWVudUl0ZW0yMDQ4KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjIwNDgg
KEhpZ2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7
CiB9CiAKIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuS2V5Y2hhaW5JdGVt
TmFtZShob3N0KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRlN0cmluZyhBZG9w
dENGLCBob3N0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBrZXljaGFpbiBrZXkg
Z2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0cmluZy5nZXQoKSk7CiB9CiAK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0
ZW1zKHNpemVfdCBjb3VudCkKK3sKKyAgICBzd2l0Y2ggKGNvdW50KSB7CisgICAgY2FzZSAwOgor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMCBJdGVtcyIsICJQcmVzZW50IHRoZSBlbGVt
ZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gbm8gPG9wdGlvbj4gaXRlbXMgYXJlIHNlbGVjdGVk
IChpT1Mgb25seSkiKTsKKyAgICBjYXNlIDE6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCIxIEl0ZW0iLCAiUHJlc2VudCB0aGUgZWxlbWVudCA8c2VsZWN0IG11bHRpcGxlPiB3aGVuIGEg
c2luZ2xlIDxvcHRpb24+IGlzIHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiV6dSBJ
dGVtcyIsICJQcmVzZW50IHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgPG9wdGlvbj4gaXRlbXMgaW4g
YSA8c2VsZWN0IG11bHRpcGxlPiBlbGVtZW50IChpT1Mgb25seSkiKSwgY291bnQpOworICAgIH0K
K30KKyNlbmRpZgorCiBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBj
b25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5pbWFnZVRpdGxlKGZpbGVuYW1lLCBzaXplKTsKKyNpZiBVU0UoQ0YpCisjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1l
Q0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgUmV0YWlu
UHRyPENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsK
KyAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBD
Rk51bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRl
ckRlY2ltYWxTdHlsZSkpOworCisgICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOworICAg
IFJldGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwg
a0NGTnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiB3aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhO
dW1iZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOworCisgICAgaW50IGhlaWdo
dEludCA9IHNpemUuaGVpZ2h0KCk7CisgICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQo
QWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkp
OworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVt
YmVyRm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhl
aWdodC5nZXQoKSkpOworCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25l
IGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZT
dHJpbmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOworI2Vs
c2UKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwg
ZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0
cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3Ig
YSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiks
IGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Cisj
ZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5k
YWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwor
I2VuZGlmCiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRl
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwgIk1lZGlhIGNv
bnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOwogfQog
CiBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0
ZVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVk
aWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNh
c3QiKTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29u
c3QgU3RyaW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb250cm9sTmFt
ZSk7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0eSByb2xl
IGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAgICBpZiAobmFt
ZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZpZGVv
IGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9u
IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11
dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0b24iKTsKKyAg
ICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxheSBidXR0b24i
KTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBwYXVz
ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciB0aW1lbGluZSBzbGlkZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRodW1iIiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIiKTsKKyAgICBp
ZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNl
ZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVybiB0byBy
ZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJldHVybiB0byBy
ZWFsIHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlm
IChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlz
cGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKKyAgICBpZiAobmFtZSA9
PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmdWxs
c2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50ZXIgZnVsbHNj
cmVlbiBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAgIGlmIChuYW1l
ID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmYXN0
IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0IHJldmVy
c2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0aW9ucyIsICJh
Y2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1
dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24i
KTsKKworICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIgc2hvdWxkIG5l
dmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5LgorICAgIGlmIChu
YW1lID09ICJDb250cm9sc1BhbmVsIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcg
bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgY29udHJv
bE5hbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0
IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnRyb2xOYW1lKTsKKyAgICBpZiAo
bmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImF1
ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIik7
CisgICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxh
eSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29u
dHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIGF1ZGlvIHRyYWNrcyIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9
PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiZWdpbiBwbGF5
YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxheSBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cGF1c2UgcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHBhdXNlIGJ1dHRv
biIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
dGltZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiYWNj
ZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0aHVtYiIpOworICAgIGlm
IChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
c2VlayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IGp1bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5U
b1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVybiBz
dHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciByZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImN1cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVt
YWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJudW1iZXIgb2Yg
c2Vjb25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IHJlbWFpbmluZyB0aW1lIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxh
eSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50IG1vdmllIHN0YXR1cyIs
ICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3RhdHVzIGRpc3BsYXkiKTsKKyAg
ICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygic2VlayBxdWlja2x5IGJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGZh
c3QgcmV3aW5kIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJh
Y2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAgIGlm
IChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTaG93
Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3Rh
cnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQg
Zm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRl
Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3Rv
cCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5sb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsKKyAgICBpZiAoIWlz
ZmluaXRlKHRpbWUpKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5kZWZpbml0ZSB0
aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1lZGlhIGNv
bnRyb2xsZXIgdGltZSB2YWx1ZSIpOworCisgICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2FzdDxp
bnQ+KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0
KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVz
ID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRh
eXMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygi
JTEkZCBkYXlzICUyJGQgaG91cnMgJTMkZCBtaW51dGVzICU0JGQgc2Vjb25kcyIsICJhY2Nlc3Np
YmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDEgZGF5
IiksIGRheXMsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAoaG91cnMpCisgICAg
ICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBob3Vy
cyAlMiRkIG1pbnV0ZXMgJTMkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgbWludXRlcyIpLCBob3VycywgbWlu
dXRlcywgc2Vjb25kcyk7CisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBtaW51dGVzICUyJGQgc2Vjb25kcyIs
ICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVl
ID49IDYwIHNlY29uZHMiKSwgbWludXRlcywgc2Vjb25kcyk7CisgICAgcmV0dXJuIGZvcm1hdExv
Y2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA8IDYwIHNlY29uZHMi
KSwgc2Vjb25kcyk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1Rl
eHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidmFsdWUg
bWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29udHJvbCBl
bGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JGaWxlVGV4dCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0K
IAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4
dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
Rm9yUmFkaW9UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VW
YWx1ZU1pc3NpbmdGb3JTZWxlY3RUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZv
ciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOwog
fQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvck11
bHRpcGxlRW1haWxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBt
ZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFpbmVkIHZh
bHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KGludCwgaW50KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT52YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVs
ZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIik7
CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBT
dHJpbmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9u
TWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJy
YW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKTsKIH0KIAogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92
ZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBo
aWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoKTsKLX0KLQotI2VuZGlmIC8vIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQotCi0j
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikKLVN0cmluZyBsb2NhbGl6ZWRTdHJp
bmcoY29uc3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwg
c3RybGVuKGtleSkpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5v
dCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
aAppbmRleCBhNzNjOTkxZmVkYTk3ZWU5OWI5YWZlMjg3YzVjNjBiNjMxYTczNTJhLi41MzJlYTFj
N2JlMTMwMDljODI5NjdkYjgyMGM3NmQ0Nzc3ZTJiMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xNzQsNiArMTc0LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcm
IGhvc3QpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgU3RyaW5nIGh0bWxTZWxl
Y3RNdWx0aXBsZUl0ZW1zKHNpemVfdCBudW0pOworI2VuZGlmCisKICAgICBTdHJpbmcgaW1hZ2VU
aXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKTsKIAogICAg
IFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7CkBAIC0xOTgsMTEgKzIwMiwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKTsKICAgICBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFzZSwgY29uc3QgU3Ry
aW5nJiBzdGVwKTsKIAotCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCiAjZGVm
aW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5nLCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVk
U3RyaW5nKHN0cmluZykKICNkZWZpbmUgV0VCX1VJX1NUUklOR19LRVkoc3RyaW5nLCBrZXksIGRl
c2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoa2V5KQogCiAgICAgU3RyaW5nIGxv
Y2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oV0lOKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGRjOWZjMzVhNzBl
OTNjZTY0MzlmN2JhNzMzZjQ0ZDNkMjc2M2M3NGEuLjY0M2YzNzUwNThlY2I4MzBiYjU3ZDUwZTky
Y2RkNjU5MDNiMTYyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcApAQCAtMjksOCArMjksNiBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUGxhdGZvcm1TdHJhdGVnaWVzKiBzX3BsYXRm
b3JtU3RyYXRlZ2llczsKQEAgLTU5LDExICs1Nyw2IEBAIGJvb2wgaGFzUGxhdGZvcm1TdHJhdGVn
aWVzKCkKICAgICByZXR1cm4gc19wbGF0Zm9ybVN0cmF0ZWdpZXM7CiB9CiAKLUxvY2FsaXphdGlv
blN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5
KCkKLXsKLSAgICByZXR1cm4gbmV3IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJ
RVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4
IDc0ODJkNjAwNWZmMDYzZDY1ZmMwNzdmYmI4YWExZDRkMTVkY2IzN2IuLjE0ZThjNGNmZTYwN2Ez
NzEyZjM2MTU3OTIxODE4OTMyYThiNGQ4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zMiw3ICszMiw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ29va2llc1N0cmF0ZWd5OwogY2xhc3MgUGx1Z2luU3RyYXRlZ3k7Ci1jbGFz
cyBMb2NhbGl6YXRpb25TdHJhdGVneTsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RyYXRlZ3k7CiAKIGNs
YXNzIFBsYXRmb3JtU3RyYXRlZ2llcyB7CkBAIC01MSwxMyArNTAsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX3BsdWdpblN0cmF0ZWd5OwogICAgIH0KIAotICAgIExvY2FsaXphdGlvblN0
cmF0ZWd5KiBsb2NhbGl6YXRpb25TdHJhdGVneSgpCi0gICAgewotICAgICAgICBpZiAoIW1fbG9j
YWxpemF0aW9uU3RyYXRlZ3kpCi0gICAgICAgICAgICBtX2xvY2FsaXphdGlvblN0cmF0ZWd5ID0g
Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKLSAgICAgICAgcmV0dXJuIG1fbG9jYWxpemF0
aW9uU3RyYXRlZ3k7Ci0gICAgfQotCiAgICAgVmlzaXRlZExpbmtTdHJhdGVneSogdmlzaXRlZExp
bmtTdHJhdGVneSgpCiAgICAgewogICAgICAgICBpZiAoIW1fdmlzaXRlZExpbmtTdHJhdGVneSkK
QEAgLTY5LDcgKzYxLDYgQEAgcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtU3RyYXRlZ2llcygpCiAg
ICAgICAgIDogbV9jb29raWVzU3RyYXRlZ3koMCkKICAgICAgICAgLCBtX3BsdWdpblN0cmF0ZWd5
KDApCi0gICAgICAgICwgbV9sb2NhbGl6YXRpb25TdHJhdGVneSgwKQogICAgICAgICAsIG1fdmlz
aXRlZExpbmtTdHJhdGVneSgwKQogICAgIHsKICAgICB9CkBAIC04MSwxMiArNzIsMTAgQEAgcHJv
dGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIENvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29v
a2llc1N0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBs
dWdpblN0cmF0ZWd5KCkgPSAwOwotICAgIHZpcnR1YWwgTG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNy
ZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBWaXNpdGVkTGlua1N0cmF0
ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkgPSAwOwogCiAgICAgQ29va2llc1N0cmF0
ZWd5KiBtX2Nvb2tpZXNTdHJhdGVneTsKICAgICBQbHVnaW5TdHJhdGVneSogbV9wbHVnaW5TdHJh
dGVneTsKLSAgICBMb2NhbGl6YXRpb25TdHJhdGVneSogbV9sb2NhbGl6YXRpb25TdHJhdGVneTsK
ICAgICBWaXNpdGVkTGlua1N0cmF0ZWd5KiBtX3Zpc2l0ZWRMaW5rU3RyYXRlZ3k7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0Vm
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHAKaW5kZXggMjcyNDBlODJiNTgxNGM0NWFiZDA1Y2JiNWMyZWU2ZTAyYTM3MTFhYS4uYzRhODJm
YTY2ZGY0Mzc4M2RhNDIwYjYzNzE2NmZmY2Q1MDVlN2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNTU1LDkgKzU1
NSw0IEBAIFN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoInBsdWdpbiBjcmFzaGVkIik7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29u
c3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwgc3RybGVu
KGtleSkpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
TG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9j
YWxpemVkU3RyaW5nc0d0ay5jcHAKaW5kZXggMDdiZWQ4ZGIzZTkwZWU2ZDI1MzlhNzVlZDJlMmJk
MzI1ZmU5NzM2Yy4uZmVmMzE3YzdmZTM2YTg0YzAzOTQwOWMyZmMwZGYyODg1ZjU4ZWVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcApAQCAtNjUyLDkgKzY1Miw0IEBAIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKICAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJzdGVwIG1pc21hdGNoIikpOwogfQogCi1TdHJpbmcgbG9jYWxpemVkU3Ry
aW5nKGNvbnN0IGNoYXIqIGtleSkKLXsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChrZXks
IHN0cmxlbihrZXkpKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJhZDhjYTVlMTcwMDZkM2M2Yzkz
NmViMWIyYzhkMDI3MzMyOGM3NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKQEAgLTAsMCArMSw2ODcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgU3RhaWtvcyBDb21wdXRpbmcgU2VydmljZXMgSW5jLiA8aW5m
b0BzdGFpa29zLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJv
cmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJ
TmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKworI2luY2x1ZGUgIklu
dFNpemUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBpbnB1dEVsZW1lbnRB
bHRUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSBhbHQgdGV4dCBmb3IgPGlu
cHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Cit9CisKK1N0cmlu
ZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVz
ZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30KKworU3RyaW5nIHNlYXJjaGFi
bGVJbmRleEludHJvZHVjdGlvbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNl
YXJjaCBrZXl3b3JkczogIiwgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBuZWFy
bHktb2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgn
Iik7Cit9CisKK1N0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJkZWZh
dWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30K
KworU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlIiwgInRpdGxl
IGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIpOwor
fQorCitTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZp
bGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNlZCBpbiBI
VE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4iKTsK
K30KKworU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlIHNlbGVj
dGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMg
d2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxl
c1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBm
aWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0ZWQg
YW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7Cit9
CisKK1N0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZXRhaWxzIiwgInRleHQgdG8g
ZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1tYXJ5PiBjaGlsZCIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3Bl
biBpbiBOZXcgV2luZG93IiwgIk9wZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZl
IExpbmsuLi4iLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgTGlu
ayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEltYWdlIiwgIk9wZW4gSW1hZ2Ug
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBJbWFnZSIsICJEb3dubG9hZCBJbWFn
ZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgSW1hZ2UiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBi
b2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiQ29weSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJP
cGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gQXVkaW8iLCAiT3BlbiBB
dWRpbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8iLCAiQ29weSBWaWRlbyBMaW5rIExvY2F0
aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNvcHkgQXVkaW8iLCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29udHJv
bHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBs
YXliYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNj
cmVlbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXkiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIiwgIlBhdXNl
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUiLCAiTXV0
ZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3co
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
Ik9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IiwgIkNvcHkgY29u
dGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
R28gQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEZvcndhcmQiLCAiRm9yd2FyZCBjb250ZXh0IG1lbnUg
aXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RvcCIsICJTdG9w
IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0N1dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3V0IiwgIkN1dCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhc3RlIiwgIlBhc3RlIGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNl
bGVjdCBBbGwiLCAiU2VsZWN0IEFsbCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8g
R3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgU3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxp
bmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkFkZCBUbyBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlYXJjaCBUaGUg
V2ViIiwgIlNlYXJjaCBUaGUgV2ViIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb29rIFVw
IEluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5rIiwg
Ik9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnSWdub3JlR3JhbW1hcigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNw
ZWxsaW5nIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93
KQoreworICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpIDoK
KyAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIiwg
IkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxl
IFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGlu
ZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVs
bGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Rm9udE1lbnUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkZvbnRzIiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSXRhbGljIiwgIkl0
YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VW5kZXJsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPdXRsaW5lIiwgIk91dGxpbmUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1dyaXRp
bmdEaXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJEaXJlY3Rpb24iLCAiV3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBz
dWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0
aW9uTWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiVGV4dCBEaXJlY3Rpb24iLCAiVGV4dCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9u
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMZWZ0IHRvIFJp
Z2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExl
ZnQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lu
c3BlY3RFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJJbnNwZWN0IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyByZWNl
bnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3
aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMg
aGF2ZSBiZWVuIHBlcmZvcm1lZCIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJj
aGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiUmVjZW50IHNlYXJjaGVzIiwgImxhYmVsIGZvciBmaXJzdCBpdGVtIGluIHRoZSBt
ZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2Us
IHVzZWQgYXMgZW1iZWRkZWQgbWVudSB0aXRsZSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudUNs
ZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDbGVhciByZWNlbnQgc2VhcmNoZXMiLCAibWVudSBpdGVt
IGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMiKTsK
K30KKworU3RyaW5nIEFYV2ViQXJlYVRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhMaW5rVGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpc3RN
YXJrZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYSGVhZGluZ1RleHQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9u
VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZl
cmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVM
aXN0QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYTGlu
a0FjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJM
YWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOworfQorCitT
dHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNp
Z25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6
ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOworfQorCitTdHJpbmcgaW1hZ2VUaXRsZShj
b25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxICglMnglMyBwaXhl
bHMpIiwgIlRpdGxlIHN0cmluZyBmb3IgaW1hZ2VzIikuYXJnKGZpbGVuYW1lKS5hcmcoc2l6ZS53
aWR0aCgpKS5hcmcoc2l6ZS5oZWlnaHQoKSk7Cit9CisKK1N0cmluZyBtZWRpYUVsZW1lbnRMb2Fk
aW5nU3RhdGVUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3Nh
Z2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOworfQorCitTdHJpbmcgbWVkaWFFbGVtZW50
TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxl
ciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKK30KKwor
I2lmIEVOQUJMRShWSURFTykKKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1l
bnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJBdWRpbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlm
IChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xs
ZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSBCdXR0b24i
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1
dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlVubXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAg
aWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSBCdXR0b24i
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlciIp
CisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlNsaWRlciIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
U2xpZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTbGlkZXIgVGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBCdXR0b24iLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVC
dXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJSZXR1cm4gdG8gUmVhbC10aW1lIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRWxhcHNlZCBU
aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJUaW1l
UmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOworICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RhdHVzIERpc3BsYXki
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3Jl
ZW5CdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJGdWxsc2NyZWVuIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEZvcndhcmQgQnV0
dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTZWVr
QmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlNlZWsgQmFjayBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7CisKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1l
ID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBz
dGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFt
ZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQg
c3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5h
bWUgPT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIGF1ZGlv
IHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
UGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkJlZ2luIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIHBsYXliYWNrIiwgIk1lZGlh
IGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3ZpZSB0
aW1lIHNjcnViYmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1l
ID09ICJTbGlkZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiTWVkaWEgY29u
dHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2lu
ZCBtb3ZpZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbC10
aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJDdXJy
ZW50VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWlu
aW5nIG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5h
bWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHN0YXR1cyIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisg
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBs
YXkgbW92aWUgaW4gZnVsbC1zY3JlZW4gbW9kZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgYmFj
ayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0Jh
Y2tCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCit7
CisgICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZpbml0ZSB0aW1lIiwgIk1lZGlhIHRpbWUg
ZGVzY3JpcHRpb24iKTsKKworICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKKyAg
ICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMgPSBz
ZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2
MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRheXMpCisgICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGRheXMgJTIgaG91cnMg
JTMgbWludXRlcyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoZGF5
cykuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOworCisgICAgaWYgKGhvdXJz
KQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICIlMSBob3VycyAlMiBtaW51dGVzICUzIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlv
biIpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKKworICAgIGlmIChtaW51
dGVzKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICIlMSBtaW51dGVzICUyIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFy
ZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7CisKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRp
b24iKS5hcmcoc2Vjb25kcyk7Cit9CisKKyNlbHNlIC8vIEVOQUJMRShWSURFTykKKy8vIEZJWE1F
OiAjaWYgRU5BQkxFKFZJREVPKSBzaG91bGQgYmUgaW4gdGhlIGJhc2UgY2xhc3MKKworU3RyaW5n
IGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQor
eworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJv
bEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGlt
ZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8p
CisKKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVZhbHVlTWlzc2luZ0ZvckZpbGVUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ0ZvclJhZGlvVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0Zv
clNlbGVjdFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0
dGVybk1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VPdmVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hU
ZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9y
bVN0cmF0ZWdpZXNRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRm
b3JtU3RyYXRlZ2llc1F0LmNwcAppbmRleCA2NGQ0MjRkOTU2ZTNjMDhmNTRmZWFiN2JiMTY1ODkx
NDJmMjJlYTJlLi5iYzUxNzJlYjMxODUyODcwNDRhMjMwM2E3NzYxNDI4YjE2NGNlNjU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2ll
c1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3Ry
YXRlZ2llc1F0LmNwcApAQCAtNjgsMTEgKzY4LDYgQEAgUGx1Z2luU3RyYXRlZ3kqIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0OjpjcmVhdGVQbHVnaW5TdHJhdGVneSgpCiAgICAgcmV0dXJuIHRoaXM7CiB9
CiAKLUxvY2FsaXphdGlvblN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y3JlYXRlTG9j
YWxpemF0aW9uU3RyYXRlZ3koKQotewotICAgIHJldHVybiB0aGlzOwotfQotCiBWaXNpdGVkTGlu
a1N0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y3JlYXRlVmlzaXRlZExpbmtTdHJhdGVn
eSgpCiB7CiAgICAgcmV0dXJuIHRoaXM7CkBAIC0xNDUsNjA4ICsxNDAsNiBAQCB2b2lkIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpnZXRQbHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2UqIHBhZ2Us
IFZlY3RvcjxXZWJDbwogCiB9CiAKLQotLy8gTG9jYWxpemF0aW9uU3RyYXRlZ3kKLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0OjppbnB1dEVsZW1lbnRBbHRUZXh0KCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdWJtaXQiLCAiU3Vi
bWl0IChpbnB1dCBlbGVtZW50KSBhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5v
IGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFJl
c2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUaGlzIGlzIGEgc2Vh
cmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiLCAidGV4dCB0aGF0IGFwcGVh
cnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0g
b2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJkZWZhdWx0IGxhYmVsIGZv
ciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaG9vc2UgRmls
ZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwg
Zm9ybXMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uQ2hv
b3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaG9vc2UgRmlsZXMiLCAidGl0bGUgZm9yIGEgbXVsdGlw
bGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMuIFRoaXMgdGl0bGUgc2hv
dWxkIGJlIGFzIHNob3J0IGFzIHBvc3NpYmxlLiIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlIHNlbGVjdGVk
IiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hl
biBubyBmaWxlIGlzIHNlbGVjdGVkIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlcyBzZWxlY3RlZCIsICJ0
ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8g
ZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0
byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmRlZmF1
bHREZXRhaWxzU3VtbWFyeVRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRldGFpbHMiLCAidGV4dCB0byBkaXNwbGF5IGluIDxkZXRh
aWxzPiB0YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxkIik7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRv
dygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiT3BlbiBpbiBOZXcgV2luZG93IiwgIk9wZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBMaW5rLi4uIiwgIkRvd25sb2FkIExpbmtlZCBG
aWxlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBMaW5rIiwgIkNv
cHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEltYWdl
IiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2soKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlNhdmUgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdD
b3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSIsICJDb3B5IExpbmsgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0
ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkg
SW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBWaWRlbyIs
ICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBBdWRp
byIsICJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNv
cHkgVmlkZW8iLCAiQ29weSBWaWRlbyBMaW5rIExvY2F0aW9uIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJv
YXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJDb3B5IEF1ZGlvIiwgIkNvcHkgQXVkaW8gTGluayBMb2NhdGlvbiIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29u
dHJvbHMoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlRvZ2dsZSBDb250cm9scyIsICJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3AoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRl
b0Z1bGxzY3JlZW4oKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3Jl
ZW4iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlBsYXkiLCAiUGxheSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIiwgIlBhdXNlIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJNdXRlIiwgIk11dGUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBGcmFtZSIsICJPcGVu
IEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IiwgIkNvcHkg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRh
Z0dvRm9yd2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiR28gRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU3RvcCgp
Ci17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
U3RvcCIsICJTdG9wIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWxvYWQiLCAiUmVsb2FkIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29u
dGV4dE1lbnVJdGVtVGFnQ3V0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBh
c3RlIiwgIlBhc3RlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWxlY3QgQWxsIiwgIlNl
bGVjdCBBbGwgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpCi17Ci0gICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gR3Vlc3NlcyBGb3Vu
ZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkln
bm9yZSIsICJJZ25vcmUgU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJB
ZGQgVG8gRGljdGlvbmFyeSIsICJMZWFybiBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJj
aFdlYigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiU2VhcmNoIFRoZSBXZWIiLCAiU2VhcmNoIFRoZSBXZWIgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdM
b29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJikKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb29rIFVwIEluIERpY3Rpb25hcnkiLCAi
TG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQotewotICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gTGlu
ayIsICJPcGVuIExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJZ25vcmUiLCAi
SWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNwZWxsaW5nIiwg
IlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1Bh
bmVsKGJvb2wgc2hvdykKLXsKLSAgICByZXR1cm4gc2hvdyA/IFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2hvdyBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0
ZW0gdGl0bGUiKSA6Ci0gICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRp
dGxlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVt
VGFnQ2hlY2tTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgU3BlbGxpbmciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxl
IFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdD
aGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIsICJD
aGVjayBncmFtbWFyIHdpdGggc3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRm9u
dHMiLCAiRm9udCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCb2xkIiwgIkJvbGQgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0
TWVudUl0ZW1UYWdJdGFsaWMoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdVbmRl
cmxpbmUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlVuZGVybGluZSIsICJVbmRlcmxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJP
dXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgp
Ci17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
RGlyZWN0aW9uIiwgIldyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1RleHRE
aXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJUZXh0IERpcmVjdGlvbiIsICJUZXh0IGRpcmVjdGlvbiBjb250ZXh0IHN1
Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0
TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBk
aXJlY3Rpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGVmdCB0byBSaWdodCIsICJM
ZWZ0IHRvIFJpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJpZ2h0IHRvIExlZnQi
LCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJbnNwZWN0
IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gcmVj
ZW50IHNlYXJjaGVzIiwgIkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVudSB0aGF0IGFwcGVhcnMg
d2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3aGVuIG5vIHNlYXJjaGVz
IGhhdmUgYmVlbiBwZXJmb3JtZWQiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
OjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWNlbnQgc2VhcmNoZXMiLCAibGFiZWwg
Zm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24g
dGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2Vh
cmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJDbGVhciByZWNlbnQgc2VhcmNoZXMiLCAibWVudSBpdGVtIGluIFJlY2VudCBT
ZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMiKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFdlYkFyZWFUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0OjpBWExpbmtUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWExpc3RNYXJr
ZXJUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWEltYWdlTWFwVGV4dCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhIZWFkaW5nVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
OjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OkFYQnV0dG9uQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhSYWRp
b0J1dHRvbkFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYVGV4dEZpZWxk
QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5n
KCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhDaGVja2VkQ2hlY2tCb3hB
Y3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmco
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFVuY2hlY2tlZENoZWNrQm94
QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5n
KCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhNZW51TGlzdEFjdGlvblZl
cmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIo
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTGlua0FjdGlvblZlcmIoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6Om1pc3NpbmdQbHVnaW5UZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNaXNzaW5nIFBsdWctaW4iLCAiTGFi
ZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnLWluIGlzIG1pc3NpbmciKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmFzaGVkUGx1Z2luVGV4dCgpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojp1bmtub3duRmlsZVNpemVUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbmtub3duIiwgIlVua25vd24g
ZmlsZXNpemUgRlRQIGRpcmVjdG9yeSBsaXN0aW5nIGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjppbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0
IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiJTEgKCUyeCUzIHBpeGVscykiLCAiVGl0bGUgc3RyaW5nIGZvciBpbWFn
ZXMiKS5hcmcoZmlsZW5hbWUpLmFyZyhzaXplLndpZHRoKCkpLmFyZyhzaXplLmhlaWdodCgpKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjptZWRpYUVsZW1lbnRMb2FkaW5nU3Rh
dGVUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hl
biB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxpdmUgQnJvYWRjYXN0Iiwg
Ik1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB3YXRjaGluZyBhIGxpdmUgYnJv
YWRjYXN0Iik7Ci19Ci0KLSNpZiBFTkFCTEUoVklERU8pCi0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcm
IG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkF1ZGlvIEVsZW1lbnQi
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxl
bWVudCIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlZpZGVvIEVsZW1lbnQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAg
aWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIEJ1dHRv
biIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1
dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlBsYXkgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlm
IChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2xpZGVyIiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCi0gICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNsaWRl
ciBUaHVtYiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAi
UmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiUmV3aW5kIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKLSAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiB0byBS
ZWFsLXRpbWUgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChu
YW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJFbGFwc2VkIFRpbWUiLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikK
LSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
UmVtYWluaW5nIFRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5h
bWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdGF0dXMgRGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkZ1bGxzY3Jl
ZW4gQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09
ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgRm9yd2FyZCBCdXR0b24iLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBC
YWNrIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLQotICAgIHJldHVybiBT
dHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChu
YW1lID09ICJBdWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFu
ZCBzdGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAo
bmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBh
bmQgc3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYg
KG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIGF1
ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9
PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkJlZ2luIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOwotICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIHBsYXliYWNrIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3Zp
ZSB0aW1lIHNjcnViYmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChu
YW1lID09ICJTbGlkZXJUaHVtYiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCi0g
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJl
d2luZCBtb3ZpZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9
PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVh
bC10aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJD
dXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVt
YWluaW5nIG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYg
KG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHN0YXR1cyIsICJNZWRpYSBj
b250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIp
Ci0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlBsYXkgbW92aWUgaW4gZnVsbC1zY3JlZW4gbW9kZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQotICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkg
YmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vl
a0JhY2tCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmco
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYVRpbWVE
ZXNjcmlwdGlvbihmbG9hdCB0aW1lKQotewotICAgIGlmICghaXNmaW5pdGUodGltZSkpCi0gICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkluZGVm
aW5pdGUgdGltZSIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIik7Ci0KLSAgICBpbnQgc2Vjb25k
cyA9IChpbnQpZmFic2YodGltZSk7Ci0gICAgaW50IGRheXMgPSBzZWNvbmRzIC8gKDYwICogNjAg
KiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKLSAgICBpbnQgbWlu
dXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAlPSA2MDsKLQotICAgIGlm
IChkYXlzKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICIlMSBkYXlzICUyIGhvdXJzICUzIG1pbnV0ZXMgJTQgc2Vjb25kcyIsICJNZWRpYSB0
aW1lIGRlc2NyaXB0aW9uIikuYXJnKGRheXMpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhz
ZWNvbmRzKTsKLQotICAgIGlmIChob3VycykKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgaG91cnMgJTIgbWludXRlcyAlMyBzZWNvbmRz
IiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoaG91cnMpLmFyZyhtaW51dGVzKS5hcmco
c2Vjb25kcyk7Ci0KLSAgICBpZiAobWludXRlcykKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgbWludXRlcyAlMiBzZWNvbmRzIiwgIk1l
ZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOwotCi0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgc2Vjb25k
cyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKHNlY29uZHMpOwotfQotCi0jZWxzZSAv
LyBFTkFCTEUoVklERU8pCi0vLyBGSVhNRTogI2lmIEVOQUJMRShWSURFTykgc2hvdWxkIGJlIGlu
IHRoZSBiYXNlIGNsYXNzCi0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVk
TWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgcmV0
dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXpl
ZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAg
cmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2Fs
aXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCi17Ci0gICAgcmV0dXJuIFN0cmlu
ZygpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFZJREVPKQotCi0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4
dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4
dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVy
Zmxvd1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0
cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gU3RyaW5nKCk7Ci19Ci0KLQogLy8gVmlzaXRlZExpbmtTdHJhdGVneQogCiBib29sIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojppc0xpbmtWaXNpdGVkKFBhZ2UqIHBhZ2UsIExpbmtIYXNoIGhhc2gs
IGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlVVJMKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0
ZWdpZXNRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0
ZWdpZXNRdC5oCmluZGV4IDUwNDkxOWUzODNmYzk0NzkyMmM4NGIyNzVmYTRlZDEwZjI4YTFmZjYu
LjhiY2VjNTYyMjFkNTEzNzkyZTkwM2E0ODA4MzRjNTQ4YmEwNTQ2N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSU5kVCAtIEluc3Rp
dHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgpAQCAtMjksNyArMjksNiBA
QAogI2RlZmluZSBQbGF0Zm9ybVN0cmF0ZWdpZXNRdF9oCiAKICNpbmNsdWRlIDxDb29raWVzU3Ry
YXRlZ3kuaD4KLSNpbmNsdWRlIDxMb2NhbGl6YXRpb25TdHJhdGVneS5oPgogI2luY2x1ZGUgPFBs
YXRmb3JtU3RyYXRlZ2llcy5oPgogI2luY2x1ZGUgPFBsdWdpblN0cmF0ZWd5Lmg+CiAjaW5jbHVk
ZSA8VmlzaXRlZExpbmtTdHJhdGVneS5oPgpAQCAtMzgsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBQYWdlOwogfQogCi1jbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdCA6IHB1
YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6Q29va2ll
c1N0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNv
cmU6OkxvY2FsaXphdGlvblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3Ry
YXRlZ3kgeworY2xhc3MgUGxhdGZvcm1TdHJhdGVnaWVzUXQgOiBwdWJsaWMgV2ViQ29yZTo6UGxh
dGZvcm1TdHJhdGVnaWVzLCBwcml2YXRlIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0
ZSBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0
cmF0ZWd5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CiAKQEAgLTQ4
LDcgKzQ3LDYgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0
ZWd5KCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2lu
U3RyYXRlZ3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvY2FsaXphdGlvblN0cmF0ZWd5KiBj
cmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneSgpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRl
ZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpOwogICAgIAogICAgIC8v
IFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneQpAQCAtNTgsMTAxICs1Niw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHJlZnJlc2hQbHVnaW5zKCk7CiAgICAgdmlydHVhbCB2b2lkIGdldFBs
dWdpbkluZm8oY29uc3QgV2ViQ29yZTo6UGFnZSosIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZv
PiYpOwogCi0gICAgLy8gV2ViQ29yZTo6TG9jYWxpemF0aW9uU3RyYXRlZ3kKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBz
ZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHN1
Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1
dHRvbkNob29zZUZpbGVMYWJlbCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1dHRv
bkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmls
ZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGZp
bGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxv
YWRJbWFnZVRvRGlzaygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weSgpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ3V0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdQYXN0ZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU2VsZWN0QWxsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdOb0d1ZXNzZXNGb3VuZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnSWdub3JlU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKTsKLSAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9v
bCBzaG93KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ091dGxpbmUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKTsKLSAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5k
b3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRp
b0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQbGF5KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YU11dGUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJj
aGVzVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJj
aGVzVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50
U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWFdlYkFyZWFUZXh0KCk7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWExpbmtUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWElt
YWdlTWFwVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhIZWFkaW5nVGV4dCgpOwot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBB
WFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTWVudUxp
c3RQb3B1cEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTGlua0FjdGlv
blZlcmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVz
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGltYWdlVGl0bGUoY29uc3QgV1RGOjpTdHJpbmcmIGZpbGVuYW1l
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBtZWRp
YUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBtZWRp
YUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFdURjo6U3RyaW5nJik7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVs
cFRleHQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxvY2Fs
aXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCk7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dU
ZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoKTsKLQogICAgIC8vIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kKICAgICB2
aXJ0dWFsIGJvb2wgaXNMaW5rVmlzaXRlZChXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6TGlua0hh
c2gsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGJhc2VVUkwsIGNvbnN0IFdURjo6QXRvbWljU3RyaW5n
JiBhdHRyaWJ1dGVVUkwpOwogICAgIHZpcnR1YWwgdm9pZCBhZGRWaXNpdGVkTGluayhXZWJDb3Jl
OjpQYWdlKiwgV2ViQ29yZTo6TGlua0hhc2gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oIGIvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCmluZGV4
IDkyZDM3ZGM2NTM2MmE5NTVlNjFjMDlhNWZiMzYxZWNlYjVmY2UzYTAuLjQ3YjBlMzQyNWM3YzRi
NjZjYTc4NDdmODJlNzU4YjZjMWUyMzMyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKQEAg
LTI2LDcgKzI2LDYgQEAKICNkZWZpbmUgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0VfaAogCiAjaW5j
bHVkZSAiQ29va2llc1N0cmF0ZWd5LmgiCi0jaW5jbHVkZSAiTG9jYWxpemF0aW9uU3RyYXRlZ3ku
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQbHVnaW5TdHJh
dGVneS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RyYXRlZ3kuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126660</attachid>
            <date>2012-02-11 17:45:06 -0800</date>
            <delta_ts>2012-02-11 19:09:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120211174505.patch</filename>
            <type>text/plain</type>
            <size>210197</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZkNWQyOTlmMTJhZWIx
NzFiNzI1NzhjNjVkZWZlZjBmMDM1MTdiZC4uNmNmNTQ0ODlkZDBhNTU5ZDFlM2IwZDg4Njg2OGU2
ZjM2YmZlZGM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2MiBAQAorMjAxMi0wMi0xMSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3Jk
ZXI6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9ybWF0TG9jYWxpemVkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRl
ZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OmlucHV0RWxlbWVu
dEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5v
RmlsZVNlbGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzayk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9v
a1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1t
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVW5kZXJsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ091
dGxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnU21hcnRRdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnU21hcnREYXNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU21h
cnRMaW5rcyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFj
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJD
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhMaXN0TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWEhlYWRpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0
RGVmaW5pdGlvblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklBQ29udGVudEdyb3VwVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEJ1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0
RmllbGRBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
Yik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhNZW51
TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6bWlzc2luZ1BsdWdpblRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1bmtub3duRmlsZVNp
emVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnVwbG9hZEZpbGVUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmFsbEZpbGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpidWlsdEluUERGUGx1Z2lu
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjprZXlnZW5NZW51SXRlbTUxMik6CisgICAgICAgIChXZWJDb3JlOjpr
ZXlnZW5NZW51SXRlbTEwMjQpOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW0yMDQ4
KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbktleWNoYWluSXRlbU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6aW1h
Z2VUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmls
ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdG
b3JNdWx0aXBsZUZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3RyYXRlZ2llczo6UGxhdGZvcm1TdHJhdGVnaWVzKToKKyAgICAgICAgKFBs
YXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmlu
Z3NFZmwuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0
LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aW5wdXRFbGVtZW50
QWx0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bGVCdXR0b25DaG9vc2VGaWxlTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNo
b29zZU11bHRpcGxlRmlsZXNMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9G
aWxlU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1Nl
bGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUlu
TmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
SW1hZ2VUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVXJsVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0N1dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5MaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0lnbm9yZUdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZ1doaWxlVHlwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrR3JhbW1hcldpdGhTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdGb250TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdCb2xk
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0luc3BlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVOb1JlY2VudFNl
YXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaXN0TWFya2VyVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEhlYWRp
bmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYUmFk
aW9CdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dEZpZWxkQWN0aW9u
VmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhNZW51TGlzdEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhN
ZW51TGlzdFBvcHVwQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtBY3Rpb25W
ZXJiKToKKyAgICAgICAgKFdlYkNvcmU6Om1pc3NpbmdQbHVnaW5UZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om11bHRpcGxlRmls
ZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93bkZpbGVTaXplVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxl
bWVudExvYWRpbmdTdGF0ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TGl2
ZUJyb2FkY2FzdFN0YXRlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1p
c21hdGNoVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1Rl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KToKKwogMjAxMi0wMi0xMSAgQW5kcmVhcyBLbGluZyAgPGF3ZXNvbWVrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQXR0cmlidXRlIHN0eWxlcyBzaG91bGQgYmUgY3JlYXRlZCBsYXppbHkuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCmluZGV4IDE0OGEyNzM2OTgwZTJiMjg5ZWY1YjBhMjg0NTdlMGY5ZWNmYThmMWUu
Ljk1NjlmZGFhMmY0ZWM5ZWVjNDUwNjA4N2EzZmExZjRkZTAwZjY1NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTEgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2FsaXphdGlvblN0cmF0
ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0Lmg6CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdCk6CisKIDIwMTItMDItMDkgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IGNvbXBpbGF0aW9uIHdpdGggbmV3ZXIgUXQ1CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCmluZGV4IDZkMmE3ZTY0N2IyZTBhZTA5YjdmNzZjYzA2NzI2Nzg1OTNm
OTIxMzEuLmZiOGY4Y2IxMWNiZDFkYTMzM2FjNjUzYjI2YjE3NjE5M2NjNWZhNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMTEgIEJlbmphbWluIFBvdWxh
aW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2Fs
aXphdGlvblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaDoKKwogMjAx
MS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgUGxh
dGZvcm1FdmVudCBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDhjMzE1ZDYyNzMxNzgw
NzAyOWY1MzQ4MGI1NzA1NmQxYzNlZjEyM2IuLjNhYTc4YzM5ZGEwYjM1NGQ4NWIwYmI2NWIxNGFj
N2VkNzFhZjdjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDU0LDcgKzEwNTQsNiBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwCiAgICAgcGxh
dGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCiAgICAgcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMu
Y3BwCi0gICAgcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcAogICAgIHBs
YXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5jcHAKICAgICBwbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDg0
NDhiM2FjOTY2ODJhZTVjZGNiYWJjMzA1MzQ0M2ZkNjcwZGFlYjAuLjAzNzc3ZjJlNjAzYzg1OGFk
MDYzYTQ0ZTJlYjM3NTUxZTQ4ZGZjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMjgxOSw4ICsyODE5LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBv
bmVudHMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3Bw
IFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ku
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFn
SW1hZ2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDE0M2Y3OGNlZDcwY2FmOWU1NWFmMjFiMGZjMjUy
NzczNTE3NTA5MjQuLjFlMTA1NTFhMzgzM2M0NDc1MGY2YjZiNzQ1YTFhOTIzYmU5YjViYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtMTAzNSw3ICsxMDM1LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZv
cm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAg
XAogICAgIHBsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcCBcCi0gICAgcGxhdGZvcm0vRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBcCiAgICAgcGxhdGZvcm0vRHJhZ0RhdGEuY3BwIFwK
ICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5j
cHAgXApAQCAtMTE2OSw3ICsxMTY4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vVVVJ
RC5jcHAgXAogICAgIHBsYXRmb3JtL1dpZGdldC5jcHAgXAogICAgIHBsYXRmb3JtL1BsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAgXAotICAgIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIFwKICAg
ICBwbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcCBcCiAgICAgcGx1Z2lucy9QbHVnaW5EYXRh
YmFzZS5jcHAgXAogICAgIHBsdWdpbnMvUGx1Z2luRGVidWcuY3BwIFwKQEAgLTIwOTAsNyArMjA4
OCw2IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmggXAogICAgIHBs
YXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmggXAogICAgIHBsYXRmb3JtL0RhdGVDb21wb25lbnRz
LmggXAotICAgIHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIFwKICAgICBw
bGF0Zm9ybS9EcmFnRGF0YS5oIFwKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuaCBcCiAgICAgcGxh
dGZvcm0vRmlsZUNob29zZXIuaCBcCkBAIC0yODM1LDYgKzI4MzIsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvTG9nZ2luZ1F0
LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvTGFuZ3VhZ2VRdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0
L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1RlbXBvcmFyeUxpbmtT
dHVic1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Qm91bmRhcmllc1F0LmNwcCBc
CiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVUXQuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzQ5OGRmZGVjYTQ4YmYwMmY2ZWFkZjQ3NzQ3Mzc1
ZjYyZDFkNjYwMi4uOTA0NmY4ZGNmNDAxOWMxOTEzMmMwZGY2YWZkZTg5YWU4NDIwYzkyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTU0OCw3ICs1NDgsNiBAQCBfX1pON1dlYkNvcmUxN1JlZ3Vs
YXJFeHByZXNzaW9uRDFFdgogX19aTjdXZWJDb3JlMTdjYWNoZURPTVN0cnVjdHVyZUVQTlNfMTdK
U0RPTUdsb2JhbE9iamVjdEVQTjNKU0M5U3RydWN0dXJlRVBLTlMyXzlDbGFzc0luZm9FCiBfX1pO
N1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVJLTjNXVEY2U3RyaW5nRVJpCiBfX1pON1dlYkNv
cmUxOEhUTUxDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEUKLV9fWk43V2ViQ29y
ZTE4UGxhdGZvcm1TdHJhdGVnaWVzMjZjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneUV2CiBfX1pO
N1dlYkNvcmUxOFNlYXJjaFBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9f
Wk43V2ViQ29yZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FTlNf
MjdFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGVFCiBfX1pON1dlYkNvcmUxOHBsdWdpblNjcmlw
dE9iamVjdEVQTjNKU0M5RXhlY1N0YXRlRVBOU18xM0pTSFRNTEVsZW1lbnRFCkBAIC0xNDc3LDcg
KzE0NzYsNiBAQCBfX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5SWRFUktOM1dU
RjEyQXRvbWljU3RyaW5nRQogX19aVFZON1dlYkNvcmUxMkNocm9tZUNsaWVudEUKIF9fWlRWTjdX
ZWJDb3JlMTZJY29uRGF0YWJhc2VCYXNlRQogX19aVFZON1dlYkNvcmUxN0ZyYW1lTG9hZGVyQ2xp
ZW50RQotX19aVFZON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llc0UKIF9fWlRWTjdXZWJDb3Jl
MjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQogX19aVFZON1dlYkNvcmUyOEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw4U2V0dGluZ3NFCiBfZmlsZW5hbWVCeUZpeGluZ0lsbGVnYWxDaGFy
YWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTA4ZjBlY2E2YTFhNWIyYzg5MTU5MjEyZDI0MGEw
OWZhOThkNDMwYy4uYjkyM2E0NWI1N2UyMTJlYWQxYjUzODU1N2I4NTgwMWFlZWQ3ZWQ5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjUxLDcgKzI1MSw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
Q29va2llc1N0cmF0ZWd5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0N1cnNvci5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oJywKLSAgICAgICAgICAgICdwbGF0
Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vRHJhZ0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0ltYWdlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgnLApAQCAtMjY3LDcgKzI2Niw2IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vTGVuZ3RoQm94LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0xlbmd0aFNpemUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTGlua0hhc2guaCcsCi0gICAg
ICAgICAgICAncGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2dn
aW5nLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oJywK
QEAgLTI3MzIsNyArMjczMCw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Vyc29yLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9E
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9E
cmFnRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0V2ZW50TG9vcC5oJywKQEAgLTI3NTYsNyArMjc1Myw2IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vTGFuZ3VhZ2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9MZW5ndGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9MaW5rSGFzaC5jcHAnLAotICAg
ICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9Mb2dnaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggOTlhYzRkMmQ5Y2M2N2E1YmFhOGQzMjM0ZDk4ZTk2
YzRjMzRkN2M0Ny4uZDViZTM5ZjQ1ODdmNWZkY2ZlNDVlM2ZmODFlY2E0ZmY4YWNiNjA4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLm9yZGVyCkBAIC01MzI5LDkgKzUzMjksNiBAQCBfX1pOSzdXZWJDb3JlMTlBY2Nl
c3NpYmlsaXR5T2JqZWN0MTVpc01lZGlhVGltZWxpbmVFdgogLVtBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciByb2xlRGVzY3JpcHRpb25dCiBfX1pON1dlYkNvcmUxM0FYSGVhZGluZ1RleHRFdgog
X19aTjdXZWJDb3JlMjFoYXNQbGF0Zm9ybVN0cmF0ZWdpZXNFdgotX19aTjdXZWJDb3JlMThQbGF0
Zm9ybVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5QzFFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYSGVhZGluZ1RleHRFdgogX19aTks3V2ViQ29yZTI1QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDRzaXplRXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QxMWVsZW1lbnRSZWN0RXYKIF9fWk5LN1dlYkNvcmUxOUFjY2Vzc2liaWxp
dHlPYmplY3QxM2lzUmFkaW9CdXR0b25FdgpAQCAtNjY4MCw3ICs2Njc3LDYgQEAgX19aTks3V2Vi
Q29yZTE0RG9jdW1lbnRMb2FkZXIyNWlzTG9hZGluZ011bHRpcGFydENvbnRlbnRFdgogX19aTks3
V2ViQ29yZTRLVVJMMTdsYXN0UGF0aENvbXBvbmVudEV2CiBfX1pON1dlYkNvcmUyNGRlY29kZVVS
TEVzY2FwZVNlcXVlbmNlc0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEwaW1hZ2VUaXRs
ZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kxMGltYWdlVGl0bGVFUktOM1dURjZTdHJpbmdFUktOU183SW50U2l6
ZUUKIF9fWk43V2ViQ29yZUwyMWZvcm1hdExvY2FsaXplZFN0cmluZ0VOM1dURjZTdHJpbmdFegog
X19aTjdXZWJDb3JlOERvY3VtZW50OHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJD
b3JlOERvY3VtZW50NGhlYWRFdgpAQCAtNjczMCw3ICs2NzI2LDYgQEAgX19aTjdXZWJDb3JlMTZK
U0hUTUxQcmVFbGVtZW50MTVjcmVhdGVQcm90b3R5cGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0
SlNHbG9iYWwKIF9fWk43V2ViQ29yZTE2SlNIVE1MUHJlRWxlbWVudEMxRVBOM0pTQzlTdHJ1Y3R1
cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTRIVE1MUHJl
RWxlbWVudEVFRQogX19aTjdXZWJDb3JlMTJjYWNoZVdyYXBwZXJJTlNfMTRIVE1MUHJlRWxlbWVu
dEVFRXZQTlNfMTVET01XcmFwcGVyV29ybGRFUFRfUE5TXzEySlNET01XcmFwcGVyRQogX19aTjdX
ZWJDb3JlMTNBWFdlYkFyZWFUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MTNBWFdlYkFyZWFUZXh0RXYKIF9fWk43V2ViQ29yZTEwUmVuZGVyVmlldzEzYWJz
b2x1dGVRdWFkc0VSTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTG0wRUVFCiBfX1pON1dlYkNv
cmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxNmdldERvY3VtZW50TGlua3NFUk4zV1RGNlZl
Y3RvcklOUzFfNlJlZlB0cklOU18xOUFjY2Vzc2liaWxpdHlPYmplY3RFRUVMbTBFRUUKIF9fWk43
V2ViQ29yZThEb2N1bWVudDVsaW5rc0V2CkBAIC02NzQwLDcgKzY3MzUsNiBAQCBfX1pOSzdXZWJD
b3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MTFsYXlvdXRDb3VudEV2CiBfX1pOSzdXZWJD
b3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MjRlc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3NF
dgogX19aTks3V2ViQ29yZTE1UHJvZ3Jlc3NUcmFja2VyMTdlc3RpbWF0ZWRQcm9ncmVzc0V2CiBf
X1pON1dlYkNvcmUxMEFYTGlua1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kxMEFYTGlua1RleHRFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJJbmxpbmUyNWN1
bGxlZElubGluZUFic29sdXRlUmVjdHNFUEtTMF9STjNXVEY2VmVjdG9ySU5TXzdJbnRSZWN0RUxt
MEVFRVJLTlNfN0ludFNpemVFCiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0MTlpbnRlcm5hbExpbmtFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUxN0hUTUxBbmNob3JFbGVt
ZW50NGhyZWZFdgpAQCAtNjg5MSw5ICs2ODg1LDcgQEAgX19aTks3V2ViQ29yZTEzSFRNTEhSRWxl
bWVudDIzY2FuQ29udGFpblJhbmdlRW5kUG9pbnRFdgogX19aTks3V2ViQ29yZTE3QWNjZXNzaWJp
bGl0eUxpc3QxM2lzT3JkZXJlZExpc3RFdgogX19aTks3V2ViQ29yZTE3QWNjZXNzaWJpbGl0eUxp
c3QxNmlzRGVmaW5pdGlvbkxpc3RFdgogX19aTjdXZWJDb3JlMjRBWERlZmluaXRpb25MaXN0VGVy
bVRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNEFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dEV2CiBfX1pON1dlYkNvcmUzMEFYRGVmaW5pdGlvbkxpc3REZWZp
bml0aW9uVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMw
QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKIF9fWk43V2ViQ29yZTE5SFRNTEZpZWxk
U2V0RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTE3SFRNTExlZ2VuZEVsZW1lbnREMEV2CiBfX1pO
N1dlYkNvcmVMMTZ2aWRlb0NvbnN0cnVjdG9yRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9j
dW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RWIKQEAgLTcxODIsNyArNzE3NCw2IEBAIF9fWlRo
bjEyMF9ON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQzMG1lZGlhUGxheWVyTmV0d29ya1N0YXRl
Q2hhbmdlZEVQTlNfMTFNZWRpCiBfX1pON1dlYkNvcmUxMU1lZGlhUGxheWVyMTJuZXR3b3JrU3Rh
dGVFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTVzZXROZXR3b3JrU3RhdGVFTlNf
MTFNZWRpYVBsYXllcjEyTmV0d29ya1N0YXRlRQogX19aTjdXZWJDb3JlMjhtZWRpYUVsZW1lbnRM
b2FkaW5nU3RhdGVUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5MjhtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKIF9fWk43V2ViQ29yZTM0TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzE5Y3JlYXRlQVZBc3NldEZvclVSTEVSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTMwTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uMTdz
ZXREZWxheUNhbGxiYWNrc0ViCiBfX1pMMzhpbml0QVZVUkxBc3NldFJlZmVyZW5jZVJlc3RyaWN0
aW9uc0tleXYKQEAgLTc0MTcsNyArNzQwOCw2IEBAIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOXJvbGVWYWx1ZUV2CiBfX1pOSzdXZWJDb3JlMzVBY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjI0YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
RXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyMTVl
bGVtZW50VHlwZU5hbWVFdgogX19aTjdXZWJDb3JlMzRsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmdFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNUR5bmFtaWNOb2RlTGlzdDE1aW52YWxpZGF0ZUNhY2hlRXYK
IF9fWk5LN1dlYkNvcmUyNE1lZGlhQ29udHJvbElucHV0RWxlbWVudDIxaXNNZWRpYUNvbnRyb2xF
bGVtZW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2wyMmFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRFdgpAQCAtNzU1NCwxNCArNzU0NCwxMiBAQCBfX1pON1dlYkNvcmUy
M1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTRzdHlsZURpZENoYW5nZUVOU18xNVN0eWxlRGlmZmVy
ZW5jZUVQS05TXwogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDE3dXBkYXRl
RnJvbUVsZW1lbnRFdgogX19aTjdXZWJDb3JlMThTaGFkb3dJbnB1dEVsZW1lbnQ2Y3JlYXRlRVBO
U18xMUhUTUxFbGVtZW50RQogX19aTjdXZWJDb3JlMjVmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVs
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjVmaWxlQnV0dG9u
Q2hvb3NlRmlsZUxhYmVsRXYKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxMnZhbHVlQ2hhbmdlZEV2
CiBfX1pON1dlYkNvcmUyMkhUTUxGb3JtQ29udHJvbEVsZW1lbnQxMXNldERpc2FibGVkRWIKIF9f
Wk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wyOWNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzRXYKIF9fWk5LN1dlYkNvcmUxM0ZpbGVJbnB1dFR5cGUxMmlzRmlsZVVwbG9hZEV2
CiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTFwYWludE9iamVjdEVSTlNf
OVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjlmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJl
bEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5ZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29s
dXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk43V2ViQ29yZTExUmVuZGVyQmxvY2sxM2Fic29sdXRl
UmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFRUVpaQogX19aVGhuOF9ON1dlYkNv
cmUxOUhUTUxUZXh0QXJlYUVsZW1lbnREMEV2CkBAIC03ODE3LDEwICs3ODA1LDcgQEAgX19aTjNX
VEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIxRWRpdG9ySW50
ZXJuYWxDb21tYW5kRUVOU18KIF9fWk4zV1RGOUhhc2hUYWJsZUlOU182U3RyaW5nRVN0NHBhaXJJ
UzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVFTlNfMThQYWlyRmlyc3RFeHRy
YWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEw
SGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2bG9va3VwSVMxX05TXzIySWRlbnRpdHlI
YXNoVHJhbnNsYXRvcklTMV9TN19TQV9FRUVFUFM3X1JLVF8KIF9fWk4zV1RGOUhhc2hUYWJsZUlO
U182U3RyaW5nRVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVF
TlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2cmVoYXNo
RWkKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnNFYgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k2c2hhcmVkRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVjb250ZXh0TWVudUl0ZW1UYWdT
aG93U3Vic3RpdHV0aW9uc0ViCiBfX1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsRWIKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MzVjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbEViCiBfX1pON1dlYkNvcmVMMjJj
ZW50ZXJUcnVuY2F0ZVRvQnVmZmVyRVJLTjNXVEY2U3RyaW5nRWpqUHQKIF9fWk43V2ViQ29yZTEx
aXNUZXh0QnJlYWtFUE5TXzE3VGV4dEJyZWFrSXRlcmF0b3JFaQogX19aTjdXZWJDb3JlMTVTUUxp
dGVTdGF0ZW1lbnQ4YmluZE51bGxFaQpAQCAtMTE5NTAsNyArMTE5MzUsNiBAQCBfX1pON1dlYkNv
cmUyMmpzSFRNTENvbGxlY3Rpb25MZW5ndGhFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVF
UktOUzBfMTBJZGVudAogX19aTks3V2ViQ29yZTE3SFRNTE9iamVjdEVsZW1lbnQxOGNvbnRhaW5z
SmF2YUFwcGxldEV2CiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MzBzZXRTaG93
c01pc3NpbmdQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdtaXNzaW5nUGx1Z2luVGV4
dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3bWlzc2luZ1Bs
dWdpblRleHRFdgogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDEzcGFpbnRSZXBs
YWNlZEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVj
dDI2Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnlFaWlSTlNfOUZsb2F0UmVjdEVSTlNfNFBhdGhF
UzJfUk5TXzRGb250RVJOU183VGV4dFJ1bkVSZgogX19aTjdXZWJDb3JlNFBhdGgxNGFkZFJvdW5k
ZWRSZWN0RVJLTlNfOUZsb2F0UmVjdEVSS05TXzlGbG9hdFNpemVFCkBAIC0xMjM3MCw3ICsxMjM1
NCw2IEBAIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxOWFsdEF0dHJpYnV0ZUNoYW5nZWRFdgogX19a
TjNXVEY2U3RyaW5nMTBtYWtlU2VjdXJlRXQKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUyN3Nob3Vs
ZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZUV2CiBfX1pON1dlYkNvcmUxOWlucHV0RWxlbWVudEFsdFRl
eHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxOWlucHV0RWxl
bWVudEFsdFRleHRFdgogX19aTks3V2ViQ29yZTE3UmVuZGVyVGV4dENvbnRyb2wzNnJlcXVpcmVz
Rm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbkV2CiBfX1pON1dlYkNvcmUzMGpzSFRNTElucHV0
RWxlbWVudERlZmF1bHRWYWx1ZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8x
MElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzMmpzSFRNTElucHV0RWxlbWVudERlZmF1bHRDaGVj
a2VkRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKQEAg
LTE1MDg2LDExICsxNTA2OSw4IEBAIF9fWk43V2ViQ29yZTE3SFRNTEtleWdlbkVsZW1lbnQ2Y3Jl
YXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1CiBfX1pON1dlYkNv
cmUxN0hUTUxLZXlnZW5FbGVtZW50QzJFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVu
dEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pON1dlYkNvcmUyMGdldFN1cHBvcnRlZEtleVNp
emVzRVJOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0wRUVFCiBfX1pON1dlYkNvcmUxOGtleWdl
bk1lbnVJdGVtMjA0OEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKIF9fWk43V2ViQ29yZTE4a2V5Z2VuTWVudUl0ZW0xMDI0
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MThrZXlnZW5NZW51
SXRlbTEwMjRFdgogX19aTjdXZWJDb3JlMTdrZXlnZW5NZW51SXRlbTUxMkV2Ci1fX1pON1dlYkNv
cmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3a2V5Z2VuTWVudUl0ZW01MTJFdgogX19a
TjdXZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudEMyRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184
RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdXZWJDb3JlMTdIVE1MT3B0aW9u
RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pO
N1dlYkNvcmUxM1NlbGVjdEVsZW1lbnQxM2Rlc2VsZWN0SXRlbXNFUk5TXzE3U2VsZWN0RWxlbWVu
dERhdGFFUE5TXzdFbGVtZW50RVM0XwpAQCAtMTU1NzEsNjAgKzE1NTUxLDM0IEBAIF9fWk43V2Vi
Q29yZTExQ29udGV4dE1lbnVDMUV2CiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51QzJFdgogX19a
TjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXI4cG9wdWxhdGVFdgogX19aTjdXZWJDb3Jl
MjZjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTI2Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtFdgogX19aTjdXZWJD
b3JlMTVDb250ZXh0TWVudUl0ZW1DMUVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250
ZXh0TWVudUFjdGlvbkVSS04zV1RGNlN0cmluZ0VQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2Vi
Q29yZTE1Q29udGV4dE1lbnVJdGVtQzJFTlNfMTlDb250ZXh0TWVudUl0ZW1UeXBlRU5TXzE3Q29u
dGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFUE5TXzExQ29udGV4dE1lbnVFCiBfX1pON1dl
YkNvcmVMMzNjcmVhdGVQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb25FTlNfMTlDb250ZXh0TWVu
dUl0ZW1UeXBlRU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFYmIKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvd0V2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmtJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzNmNvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0Ns
aXBib2FyZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3
V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250
ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzN2NvbnRl
eHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2tFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2tFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4Y29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmRFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBsYXlFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2CiBfX1pON1dlYkNvcmUyN2NvbnRl
eHRNZW51SXRlbVRhZ01lZGlhTXV0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sc0V2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9sc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzY29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuRXYKIF9f
Wk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHRFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nl
YXJjaEluU3BvdGxpZ2h0RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjdjb250ZXh0
TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgogX19aTjdXZWJDb3JlMjJjb250ZXh0TWVudUl0ZW1UYWdD
b3B5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjJjb250ZXh0
TWVudUl0ZW1UYWdDb3B5RXYKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnR29CYWNr
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2tFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdHb0Zvcndh
cmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRN
ZW51SXRlbVRhZ0dvRm9yd2FyZEV2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ1N0
b3BFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRN
ZW51SXRlbVRhZ1N0b3BFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51
SXRlbVRhZ1JlbG9hZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFt
ZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUz
MmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZEV2
CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdJ
Z25vcmVTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3Bl
bGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRl
eHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVHcmFtbWFyRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyRXYKIF9fWk43V2ViQ29yZTIx
Y29udGV4dE1lbnVJdGVtVGFnQ3V0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjFjb250ZXh0TWVudUl0ZW1UYWdDdXRFdgogX19aTjdXZWJDb3JlMjNjb250ZXh0
TWVudUl0ZW1UYWdQYXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTIzY29udGV4dE1lbnVJdGVtVGFnUGFzdGVFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJl
c3VsdDE3aXNDb250ZW50RWRpdGFibGVFdgogX19aTks3V2ViQ29yZTIxQ29udGV4dE1lbnVDb250
cm9sbGVyMjFjaGVja09yRW5hYmxlSWZOZWVkZWRFUk5TXzE1Q29udGV4dE1lbnVJdGVtRQogX19a
Tks3V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtNHR5cGVFdgpAQCAtMTU2MzgsNyArMTU1OTIsNiBA
QCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTJtZWRpYUVsZW1lbnRFdgogX19aTjdXZWJD
b3JlMTVDb250ZXh0TWVudUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJv
bGxlcjIxYWRkSW5zcGVjdEVsZW1lbnRJdGVtRXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJ
dGVtVGFnSW5zcGVjdEVsZW1lbnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50RXYKIF9fWk5LN1dlYkNv
cmUxMUNvbnRleHRNZW51MTlwbGF0Zm9ybURlc2NyaXB0aW9uRXYKIF9fWk43V2ViQ29yZTExQ29u
dGV4dE1lbnUyMnNldFBsYXRmb3JtRGVzY3JpcHRpb25FUDE0TlNNdXRhYmxlQXJyYXkKIF9fWk43
V2ViQ29yZThEb2N1bWVudDIzYWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWRFUE5TXzROb2RlRQpAQCAt
MTYyMTAsMTYgKzE2MTYzLDExIEBAIF9fWk5LN1dlYkNvcmUxOFRleHRDaGVja2luZ0hlbHBlcjQw
Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZUViUmJTCiBfX1pOSzdXZWJD
b3JlMTNIaXRUZXN0UmVzdWx0MTRyZXBsYWNlZFN0cmluZ0V2CiBfX1pON1dlYkNvcmVMMjlzZWxl
Y3Rpb25Db250YWluc1Bvc3NpYmxlV29yZEVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMzBjb250
ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudUV2CiBfX1pON1dl
YkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjQwY3JlYXRlQW5kQXBwZW5kU3BlbGxpbmdBbmRH
cmFtbWFyU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRl
eHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgogX19aTjdX
ZWJDb3JlNDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmdFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k0MmNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxs
aW5nRXYKIF9fWk43V2ViQ29yZTQ2Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0
b21hdGljYWxseUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTQ2
Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseUV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMjJzcGVsbGluZ1BhbmVsSXNTaG93aW5nRXYKIF9fWk43V2ViQ29yZTE1Q29u
dGV4dE1lbnVJdGVtOHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkVkaXRv
cjI0aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkRXYKQEAgLTE2MjI3LDY2ICsxNjE3NSw0MSBAQCBf
X1pON1dlYkNvcmU2RWRpdG9yMzZpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWRF
dgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW0xMHNldFN1Yk1lbnVFUE5TXzExQ29udGV4
dE1lbnVFCiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51RDFFdgogX19aTjdXZWJDb3JlMzVjb250
ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnVF
dgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIzNWNyZWF0ZUFuZEFwcGVuZFN1
YnN0aXR1dGlvbnNTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43V2ViQ29yZTMy
Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlRXYK
IF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXNFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0
UXVvdGVzRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXNFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0RGFzaGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRM
aW5rc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRh
Z1RleHRSZXBsYWNlbWVudEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50RXYKIF9fWk43V2ViQ29yZTZF
ZGl0b3IyN3N1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZ0V2CiBfX1pON1dlYkNvcmU2RWRpdG9y
MzVpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU2RWRp
dG9yMzRpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkRXYKIF9fWk43V2ViQ29yZTZF
ZGl0b3IzMWlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRFdgogX19aTjdXZWJDb3JlNkVk
aXRvcjMzaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkRXYKIF9fWk43V2ViQ29yZTM3
Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudUV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjM3Y3JlYXRlQW5k
QXBwZW5kVHJhbnNmb3JtYXRpb25zU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pO
N1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2VFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBl
ckNhc2VFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlRXYK
LV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0
ZW1UYWdNYWtlTG93ZXJDYXNlRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnQ2Fw
aXRhbGl6ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29u
dGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZUV2CiBfX1pON1dlYkNvcmUyNmNvbnRleHRNZW51SXRl
bVRhZ0ZvbnRNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MjZjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51
Q29udHJvbGxlcjI2Y3JlYXRlQW5kQXBwZW5kRm9udFN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJ
dGVtRQogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHNFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ1No
b3dGb250c0V2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0JvbGRFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRNZW51SXRlbVRhZ0Jv
bGRFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWNFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRlbVRhZ0l0YWxp
Y0V2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZUV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnVW5k
ZXJsaW5lRXYKIF9fWk43V2ViQ29yZTI1Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZUV2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI1Y29udGV4dE1lbnVJdGVtVGFn
T3V0bGluZUV2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1N0eWxlc0V2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9yc0V2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4dE1lbnVJdGVt
VGFnU2hvd0NvbG9yc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1l
bnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOGNvbnRleHRN
ZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xs
ZXIyOGNyZWF0ZUFuZEFwcGVuZFNwZWVjaFN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJdGVtRQog
X19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nRXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdTdGFy
dFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwY29udGV4dE1lbnVJdGVtVGFnU3RvcFNwZWFraW5n
RXYKIF9fWk43V2ViQ29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRVJLTjNXVEY2
VmVjdG9ySU5TMF82U3RyaW5nRUxtMEVFRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZ0V2CiBfX1pON1dlYkNv
cmUzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51RXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5n
RGlyZWN0aW9uTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjM4Y3Jl
YXRlQW5kQXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJdGVt
RQogX19aTjdXZWJDb3JlMzRjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uRXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzRjb250ZXh0TWVudUl0ZW1U
YWdEZWZhdWx0RGlyZWN0aW9uRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnTGVm
dFRvUmlnaHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNv
bnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJ
dGVtVGFnUmlnaHRUb0xlZnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0RXYKIF9fWk5LN1dlYkNvcmU2RWRp
dG9yMTZoYXNCaWRpU2VsZWN0aW9uRXYKIF9fWk5LN1dlYkNvcmUxM0tleWJvYXJkRXZlbnQ4Y2hh
ckNvZGVFdgogX19aTjdXZWJDb3JlMThqc0RPTVNlbGVjdGlvblR5cGVFUE4zSlNDOUV4ZWNTdGF0
ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTYyOTUsNyArMTYyMTgsNiBA
QCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJCbG9jazI0Y29udGFpbnNOb25aZXJvQmlkaUxldmVsRXYK
IF9fWk5LN1dlYkNvcmUxOUFwcGx5UHJvcGVydHlMZW5ndGhJTE5TXzEwTGVuZ3RoQXV0b0UxRUxO
U18xNUxlbmd0aEludHJpbnNpY0UxRUxOU18xOExlbmd0aE1pbkludHJpbnNpY0UxRUxOU18xMExl
bmd0aE5vbmVFMUVMTlNfMTVMZW5ndGhVbmRlZmluZWRFMUVFMTBhcHBseVZhbHVlRVBOU18xNkNT
U1N0eWxlU2VsZWN0b3JFUE5TXzhDU1NWYWx1ZUUKIF9fWk43V2ViQ29yZTExUmVuZGVyU3R5bGUx
MXNldE1heFdpZHRoRU5TXzZMZW5ndGhFCiBfX1pON1dlYkNvcmUzNmNvbnRleHRNZW51SXRlbVRh
Z0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25h
cnlFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMjZo
YXNJbnNwZWN0b3JGcm9udGVuZENsaWVudEV2CiBfX1pOSzdXZWJDb3JlMjFCYWNrRm9yd2FyZENv
bnRyb2xsZXIxOGNhbkdvQmFja09yRm9yd2FyZEVpCiBfX1pOSzdXZWJDb3JlNFBhZ2UxOGNhbkdv
QmFja09yRm9yd2FyZEVpCkBAIC0xNzA2Myw3ICsxNjk4NSw2IEBAIF9fWk43V2ViQ29yZTE0U1ZH
U01JTEVsZW1lbnQyMGRpc2Nvbm5lY3RDb25kaXRpb25zRXYKIF9fWk43V2ViQ29yZTE3U01JTFRp
bWVDb250YWluZXIxMHVuc2NoZWR1bGVFUE5TXzE0U1ZHU01JTEVsZW1lbnRFCiBfX1pOSzdXZWJD
b3JlMTdSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gxMHJlbmRlck5hbWVFdgogX19aTjdXZWJD
b3JlMjdzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb25FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kyN3NlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbkV2CiBfX1pO
N1dlYkNvcmUxNFJlbmRlclJ1YnlUZXh0QzFFUE5TXzROb2RlRQogX19aTks3V2ViQ29yZTEzUmVu
ZGVyUnVieVJ1bjExaGFzUnVieVRleHRFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyUnVieVRleHQx
MGlzUnVieVRleHRFdgpAQCAtMTg5NjksNyArMTg4OTAsNiBAQCBfX1pON1dlYkNvcmU4TG9jYXRp
b243c2V0SHJlZkVSS04zV1RGNlN0cmluZ0VQTlNfOURPTVdpbmRvd0VTNl8KIF9fWk43V2ViQ29y
ZTE3U3R5bGVQZW5kaW5nSW1hZ2UxMnJlbW92ZUNsaWVudEVQTlNfMTJSZW5kZXJPYmplY3RFCiBf
X1pON1dlYkNvcmUxNVN1Ym1pdElucHV0VHlwZTEyZGVmYXVsdFZhbHVlRXYKIF9fWk43V2ViQ29y
ZTI0c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MjRzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWxFdgogX19aTks3V2ViQ29y
ZTExUmVuZGVyVGFibGUyMGZpcnN0TGluZUJveEJhc2VsaW5lRXYKIF9fWk5LN1dlYkNvcmUxOFJl
bmRlclRhYmxlU2VjdGlvbjIwZmlyc3RMaW5lQm94QmFzZWxpbmVFdgogX19aTks3V2ViQ29yZTE1
UmVuZGVyV29yZEJyZWFrMTByZW5kZXJOYW1lRXYKQEAgLTE5NDU1LDcgKzE5Mzc1LDYgQEAgX19a
TjdXZWJDb3JlTDIyVG9wR3JhZGllbnRJbnRlcnBvbGF0ZUVQdlBLZFBkCiBfX1pON1dlYkNvcmVM
MjVCb3R0b21HcmFkaWVudEludGVycG9sYXRlRVB2UEtkUGQKIF9fWk43V2ViQ29yZTE0UmVzZXRJ
bnB1dFR5cGUxMmRlZmF1bHRWYWx1ZUV2CiBfX1pON1dlYkNvcmUyM3Jlc2V0QnV0dG9uRGVmYXVs
dExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjNyZXNl
dEJ1dHRvbkRlZmF1bHRMYWJlbEV2CiBfX1pON1dlYkNvcmUxMlVSTElucHV0VHlwZTZjcmVhdGVF
UE5TXzE2SFRNTElucHV0RWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxMlVSTElucHV0VHlwZTE1Zm9y
bUNvbnRyb2xUeXBlRXYKIF9fWk43V2ViQ29yZTE0SW5wdXRUeXBlTmFtZXMzdXJsRXYKQEAgLTI1
MjIxLDcgKzI1MTQwLDYgQEAgX19aTjdXZWJDb3JlMTNKU0V2ZW50U291cmNlRDFFdgogX19aTjdX
ZWJDb3JlMTFFdmVudFNvdXJjZUQwRXYKIF9fWk5LM0pTQzE0SlNHbG9iYWxPYmplY3QxNGlzR2xv
YmFsT2JqZWN0RXYKIF9fWk43V2ViQ29yZTIybXVsdGlwbGVGaWxlVXBsb2FkVGV4dEVqCi1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIybXVsdGlwbGVGaWxlVXBsb2Fk
VGV4dEVqCiBfX1pON1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDIyY2FsY1Zl
cnRpY2FsUHJlZldpZHRoc0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0eWxlMTVzZXRCb3hGbGV4
R3JvdXBFagogX19aTks3V2ViQ29yZTEzUmVuZGVyTGlzdEJveDEwcmVuZGVyTmFtZUV2CkBAIC0y
NTQ5OCw3ICsyNTQxNiw2IEBAIF9fWk43V2ViQ29yZTIySFRNTEZvcm1Db250cm9sRWxlbWVudDMw
dXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlRXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxJbnB1
dEVsZW1lbnQxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTks3V2ViQ29yZTlJbnB1dFR5cGUxNnZh
bHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3JlMzN2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzM3Zh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pON1dlYkNvcmUxN1ZhbGlkYXRp
b25NZXNzYWdlNmNyZWF0ZUVQTlNfMjFGb3JtQXNzb2NpYXRlZEVsZW1lbnRFCiBfX1pON1dlYkNv
cmUxN1ZhbGlkYXRpb25NZXNzYWdlMTBzZXRNZXNzYWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlNVRpbWVySU5TXzE3VmFsaWRhdGlvbk1lc3NhZ2VFRTVmaXJlZEV2CkBAIC0yNTYwOCwx
MSArMjU1MjUsOSBAQCBfX1pON1dlYkNvcmU0NHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
Rm9yQ2hlY2tib3hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNFJhZGlvSW5wdXRUeXBlMTZ2YWx1ZU1p
c3NpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdG
b3JSYWRpb1RleHRFdgogX19aTjdXZWJDb3JlMzZ2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNt
YXRjaFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNnZh
bGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2CiBfX1pOSzdXZWJDb3JlMTZIVE1M
SW5wdXRFbGVtZW50MTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNEVtYWlsSW5w
dXRUeXBlMTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dEV2CiBfX1pO
N1dlYkNvcmUzOGpzSFRNTEZpZWxkU2V0RWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBOM0pTQzlF
eGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTM2
anNIVE1MS2V5Z2VuRWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMzanNIVE1MRmllbGRT
ZXRFbGVtZW50V2lsbFZhbGlkYXRlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMw
XzEwSWRlbnRpZmllckUKQEAgLTI4NjExLDcgKzI4NTI2LDYgQEAgX19aTjdXZWJDb3JlMTFGcmFt
ZUxvYWRlcjIyZmluZEZyYW1lRm9yTmF2aWdhdGlvbkVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBf
X1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIzdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3JF
UE5TXzlFeGVjU3RhdGVFCiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MzBzZXRT
aG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdjcmFzaGVkUGx1Z2lu
VGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3Y3Jhc2hl
ZFBsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMTZTY3JpcHRDb250cm9sbGVyMTFjcmVhdGVXb3Js
ZEV2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjBhZGRVc2VyU2NyaXB0VG9Xb3JsZEVQTlNfMTVE
T01XcmFwcGVyV29ybGRFUktOM1dURjZTdHJpbmdFUktOU180S1VSTEVOUzNfMTBQYXNzT3duUHRy
SU5TM182VmVjdG9ySVM0X0xtMEVFRUVFU0RfTlNfMjNVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUVO
U18yNVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dlYkNvcmUxMFVzZXJTY3JpcHRD
MkVSS04zV1RGNlN0cmluZ0VSS05TXzRLVVJMRU5TMV8xMFBhc3NPd25QdHJJTlMxXzZWZWN0b3JJ
UzJfTG0wRUVFRUVTQl9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRU5TXzI1VXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lc0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggMGEzMTMxMmQ3NzA3YWNjY2UxNzY4MGRkNjA4MzlkNmJjN2QwYzkyNi4u
NzY0YzBkNzMzNjQ3ODVlYTVkNzE4ODhhZWUxYWE2MjExMThjNDg0NiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2NTQyLDE0ICsyNjU0Miw2
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAiCi0JCQkJPgotCQkJPC9GaWxl
PgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVxEcmFnRGF0YS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAt
MjY2OTAsMTAgKzI2NjgyLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxp
emVkU3RyaW5ncy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ5MzZkMzgyOGVkN2IzMDE0
MzI0ZTdlMWJkOGE1ZWYxYmY3NTQzYjcuLmU2NDIxYjg2ZDJiOTlhNTY5MGFjNzczNTE1OWIyYjRh
NDNjNjBmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTUxNDksNyArNTE0OSw2IEBACiAJCUJDNUE4NkI2MEMzMzY3RTgwMEVF
QTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9u
LmggKi87IH07CiAJCUJDNUM3NjJBMTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI4
MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNwcCAqLzsgfTsKIAkJQkM1Qzc2MkIx
NDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0
Zm9ybUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVDRkNBODEx
Rjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzVFQjVEQjBFODFCN0VBMDBCMjU5
NjUgLyogQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNUVCNUREMEU4
MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURDMEU4MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5l
VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQzVFQjVERjBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURFMEU4MUI5
QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MzUzLDggKzUzNTIsNiBAQAogCQlCQ0Mw
NjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcgLyog
SlNDbGllbnRSZWN0LmggKi87IH07CiAJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAq
LzsgfTsKIAkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg2MEYz
Q0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJDQzM2RUI4MTM0
MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMzZFQjYxMzQyQUEzRjAw
NEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgKi87IH07Ci0JCUJDQzM2
RUI5MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzM2RUI3MTM0MkFB
M0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgfTsKIAkJQkND
NDM4NzgwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M0Mzg3NzBFODg2
Q0M3MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkND
NTczMzUwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUx
NyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUJDQzU3MzM2MEQ2OTVCQkUwMDZFRjUx
NyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZl
bnQubW0gKi87IH07CkBAIC0xMjA1Niw3ICsxMjA1Myw2IEBACiAJCUJDNUE4NkI0MEMzMzY3RTgw
MEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNET01TZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1
Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM1Q0ZDQTgxMUY3OTMzMjAwOTlFRDA5IC8qIExv
Y2FsaXphdGlvblN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Y2FsaXphdGlvblN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUVC
NURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5bGUvQm9yZGVyVmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REMwRTgxQjhERDAwQjI1OTY1IC8q
IE91dGxpbmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPdXRsaW5l
VmFsdWUuaDsgcGF0aCA9IHN0eWxlL091dGxpbmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaDsgcGF0aCA9IHN0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMjI4MSw4ICsxMjI3Nyw2IEBACiAJCUJDQzA2NTg0MEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNDbGllbnRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzA2NTg1
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVudFJlY3RMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzM2RUI2MTM0MkFBM0YwMDRCRUVG
NyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVs
ZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1NzMzMzBE
Njk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NjkwLDggKzE5Njg0LDYgQEAKIAkJ
CQlGNTg3ODY4NDAyREUzQjg2MDFFQTQxMjIgLyogQ3Vyc29yLmggKi8sCiAJCQkJQTU3MzJCMDgx
MzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCAqLywKIAkJCQlBNTczMkIwOTEz
NkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLywKLQkJCQlCQ0MzNkVCNjEzNDJB
QTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCAqLywKLQkJCQlC
Q0MzNkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
Ki8sCiAJCQkJQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLywKIAkJ
CQlBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCAqLywKIAkJCQlBN0NGQjND
RjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmNwcCAqLywKQEAgLTE5NzI1LDcgKzE5NzE3
LDYgQEAKIAkJCQlCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6ZS5oICovLAog
CQkJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgKi8sCiAJCQkJQTdB
RDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi8sCi0JCQkJQkM1Q0ZDQTgxMUY3
OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8sCiAJCQkJQzA0NkUxQUIx
MjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovLAogCQkJCTkzNTIwN0JE
MDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8sCiAJCQkJQTgyMzlERkUw
OUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovLApAQCAtMjE0MDAsNyArMjEzOTEsNiBA
QAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcgLyogRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDA2REZBNjEzNEE0REVGMDA2
RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJC
MDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwMkUxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MzA4NSw3ICsyMzA3NSw2IEBACiAJCQkJMDZFODFFRDcwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzYzM0E3MjYxM0Q4
QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0
ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTczMkIwRDEzNkExNkM0MDA1QzhEN0MgLyogTG9j
YWxpemVkRGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxNDJDNjkxMjNGMTJCMDAwRjVCRDRD
IC8qIExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3QkUwOUJENDEw
QTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3OTgs
NyArMjQ3ODcsNiBAQAogCQkJCTQxNjJBNDUwMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQTNENThFMTAxQzE1MkQwMDMx
NkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQw
NkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlCQ0MzNkVCODEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNjdFQkY1MTAyOTYy
QkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRDMxNjAyQjEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlEU1BLZXJuZWwuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkQxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYTNhNDg2MDQ5NDEyYWEwMTU0M2IyYzJkOGJjZDJiNGY2ZGFjY2U0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw5NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQotI2lmIFVTRShQTEFURk9S
TV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4K
LSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KLQotI2lmIFVTRShDRikKLSNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci0vLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3byByZWFzb25zOgotLy8gIDEp
IEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBmb3JtYXQgc3Ry
aW5nLgotLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRkIHN5bnRheC4KLS8vIE5vdGUg
dGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIgdG8g
dmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQotLy8gdHlwZSBhY2NvcmRpbmcgdG8g
c2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFyZC4KLXN0YXRpYyBTdHJpbmcg
Zm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4uLikKLXsKLSNpZiBVU0UoQ0Yp
Ci0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3RhcnQoYXJndW1lbnRzLCBmb3JtYXQp
OwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZTdHJpbmcoQWRvcHRDRiwgZm9y
bWF0LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0
KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygwLCAwLCBmb3Jt
YXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7Ci0gICAgdmFfZW5kKGFyZ3VtZW50cyk7Ci0g
ICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIHZhX2xpc3Qg
YXJndW1lbnRzOwotICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKLSAgICBRU3RyaW5n
IHJlc3VsdDsKLSAgICByZXN1bHQudnNwcmludGYoZm9ybWF0LmxhdGluMSgpLmRhdGEoKSwgYXJn
dW1lbnRzKTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICByZXR1cm4gcmVzdWx0OwotI2Vs
c2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmb3JtYXQ7Ci0jZW5kaWYKLX0K
LQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKLXN0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3Vw
TWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKLXsKLSAgICBpZiAob3JpZ2luYWwuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gb3JpZ2luYWw7Ci0gICAgCi0gICAgLy8gVHJ1bmNhdGUg
dGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGgg
QXBwS2l0LgotICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3Vw
TWVudUl0ZW0gPSAyNDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMs
ICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7Ci0gICAgCi0gICAgU3RyaW5nIHRyaW1tZWQgPSBv
cmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJhY3Rl
cnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJlck9m
R3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOwotICAgIHJldHVybiBudW1iZXJPZkNo
YXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQgOiB0cmltbWVkLmxlZnQobnVt
YmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwotfQotI2VuZGlmCi0KLURlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneSYgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzaGFyZWQoKQotewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LCBkZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksICgpKTsKLSAgICByZXR1cm4gZGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5OwotfQotCi1EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkRlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneSgpCi17Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HX0tFWSgiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkiLCAiYWx0IHRleHQgZm9y
IDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJl
bCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwg
Zm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4
LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsCi0gICAgICAgICJ0ZXh0IHRoYXQgYXBwZWFycyBh
dCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBh
ICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9y
bXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9vc2VyIGJ1dHRv
biB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBm
aWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQg
YmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
ZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3RlZCIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9uTm9G
aWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBmaWxl
cyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1M
IGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBt
dWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+
IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotI2lmIFBMQVRGT1JN
KE1BQykKLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvcHlJbWFnZVVua25v
d25GaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVu
a25vd24gZmlsZW5hbWUiKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVu
IExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29u
dGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
T3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVu
IEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci0jaWYgUExBVEZPUk0oUVQpCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3Mg
bWVudSBpdGVtIik7Ci19Ci0jZW5kaWYKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBWaWRl
byBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2lu
ZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2lu
ZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
b3B5IFZpZGVvIEFkZHJlc3MiLCAiQ29weSBWaWRlbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJDb3B5IEF1ZGlvIEFkZHJlc3Mg
TG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENvbnRyb2xzIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdF
bnRlclZpZGVvRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkVudGVy
IEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IiwgIk1l
ZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk11dGUiLCAi
TWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIs
ICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJCYWNrIiwg
IkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1N0b3AoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIiwgIlN0b3AgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
UmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Bh
c3RlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotI2lmIFBMQVRGT1JNKEdUSykKLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiRGVsZXRlIjsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzKCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiSW5wdXQgTWV0aG9kcyI7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1VuaWNvZGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJVbmljb2Rl
IjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWxl
Y3RBbGwoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJTZWxlY3QgQWxs
IjsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
SWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGVhcm4gU3Bl
bGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2Vi
KCkKLXsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlEZWZhdWx0U2VhcmNo
UHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92
aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2Vh
cmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUgY29udGV4dCBtZW51IGl0
ZW0iKTsKLSNlbmRpZgotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3Rl
ZFN0cmluZykKLXsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIFVOVVNFRF9QQVJBTShzZWxlY3RlZFN0cmlu
Zyk7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIsICJM
b29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLSNlbHNlCi0jaWYgVVNF
KENGKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VsZWN0ZWRDRlN0cmluZyhBZG9wdENG
LCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmluZykuY3JlYXRl
Q0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCJMb29rIFVwIOKAnCVA4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBz
ZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCDigJw8c2VsZWN0aW9uPuKAnSIsICJMb29rIFVwIGNv
bnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLnJlcGxhY2UoIjxzZWxlY3Rpb24+
IiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpKTsKLSNl
bmRpZgotI2VuZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
T3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFt
bWFyKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIEdyYW1tYXIiLCAiSWdu
b3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAiU3BlbGxpbmcg
YW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVs
KGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBp
dGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNwZWxsaW5nIHdo
aWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxp
bmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFyIFdpdGggU3Bl
bGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9udCIsICJGb250
IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVW5k
ZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiUGFyYWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0aW9uIGNvbnRl
eHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlv
biBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVjdGlv
biBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJp
Z2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi0j
aWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdodCBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJTaG93IEZvbnRzIiwgIlNob3cgZm9udHMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3R5
bGVzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3R5bGVzLi4uIiwgIlN0eWxlcyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnU3BlZWNoTWVudSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWVjaCIsICJT
cGVlY2ggY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdGFydCBTcGVha2luZyIsICJTdGFydCBzcGVha2luZyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIsICJDb3JyZWN0IFNw
ZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9u
c01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJzdGl0dXRpb25zIiwgIlN1
YnN0aXR1dGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25z
KGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykgCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJTaG93IFN1YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnU21hcnRDb3B5UGFzdGUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBD
b3B5L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU21h
cnRRdW90ZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBRdW90ZXMiLCAi
U21hcnQgUXVvdGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3MgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
VGV4dFJlcGxhY2VtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVGV4dCBSZXBs
YWNlbWVudCIsICJUZXh0IFJlcGxhY2VtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
Zm9ybWF0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJUcmFuc2Zvcm1h
dGlvbnMiLCAiVHJhbnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtl
VXBwZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBVcHBlciBDYXNl
IiwgIk1ha2UgVXBwZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNl
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBMb3dlciBDYXNlIiwgIk1ha2Ug
TG93ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiQ2FwaXRhbGl6ZSIsICJDYXBpdGFsaXplIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiByZXBsYWNlZFN0cmluZzsKLX0KLQot
I2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSW5z
cGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Igb25s
eSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBm
aWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVSZWNlbnRTZWFy
Y2hlc1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMi
LCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xp
Y2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRp
dGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IkNsZWFyIFJlY2VudCBTZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJjaGVzIG1l
bnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpBWFdlYkFyZWFUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiSFRNTCBjb250ZW50IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3Igd2ViIGFyZWEiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
QVhMaW5rVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpbmsiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlzdE1hcmtlclRleHQoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJsaXN0IG1hcmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIGxpc3QgbWFya2VyIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW1h
Z2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1hZ2UgbWFwIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYSGVhZGluZ1RleHQo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGluZ3MiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0aW9uIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRlZmluaXRpb24i
LCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKLX0KLQotI2lmIFBMQVRGT1JNKE1BQykKLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3Qg
U3RyaW5nJiBhcmlhVHlwZSkKLXsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlv
bkFsZXJ0IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7Ci0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3Vw
IHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJB
UklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlh
bG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9n
LiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGEgY29uc29sZSBsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklB
QXBwbGljYXRpb25NYXJxdWVlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1
ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUu
Iik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uU3RhdHVzIikKLSAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIHN0YXR1cyIsICJBbiBBUklB
IGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgc3RhdHVzIHVwZGF0ZS4iKTsgICAg
Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25UaW1lciIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGFuIHVwZGF0aW5nIHRpbWVyLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUg
PT0gIkFSSUFEb2N1bWVudCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkb2N1bWVu
dCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgZG9jdW1lbnQu
Iik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50QXJ0aWNsZSIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBRG9jdW1lbnROb3RlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5v
dGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG5vdGUgaW4g
YSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRSZWdp
b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24gaW4gYSBkb2N1
bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtBcHBsaWNhdGlv
biIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBsaWNhdGlvbiIsICJBbiBBUklB
IGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFwcGxpY2F0aW9uLiIpOyAgICAK
LSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0Jhbm5lciIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJiYW5uZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgYWN0cyBhcyBhIGJhbm5lci4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFu
ZG1hcmtDb21wbGVtZW50YXJ5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbXBs
ZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHJl
Z2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5
cGUgPT0gIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImNvbnRlbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFp
bnMgY29udGVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtNYWlu
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1haW4iLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9ydGlvbiBvZiB0aGUgd2Vic2l0ZS4iKTsg
ICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBh
IHdlYnNpdGUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrU2VhcmNo
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlYXJjaCIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBhIHNlYXJjaCBmZWF0dXJlIG9mIGEgd2Vic2l0
ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVyZmFjZVRvb2x0aXAi
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsgICAgCi0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
dGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRo
ZSBjb250ZW50IG9mIGEgdGFiLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50
TWF0aCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLSNlbmRpZgotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIg
d2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhSYWRpb0J1dHRvbkFjdGlv
blZlcmIoKSAKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNs
aWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0
IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFzIHVzZWQgYnkgYWNj
ZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpB
WENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVu
IGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHki
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhVbmNoZWNrZWRD
aGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjaGVjayIs
ICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhbiB1bmNoZWNr
ZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTWVudUxpc3RBY3Rpb25WZXJi
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAic2VsZWN0IjsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhNZW51TGlzdFBvcHVwQWN0aW9u
VmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInNlbGVjdCI7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlua0FjdGlvblZlcmIo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3RhdGluZyB0aGUg
YWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5
IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNaXNz
aW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnaW4gaXMgbWlz
c2luZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpjcmFzaGVk
UGx1Z2luVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gRmFpbHVy
ZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3QgcHJvY2VzcyBoYXMgY3Jh
c2hlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptdWx0aXBs
ZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCi17Ci0gICAgcmV0dXJuIGZv
cm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJMYWJlbCB0byBk
ZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1cGxvYWQgY29u
dHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVzKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dW5rbm93bkZpbGVTaXplVGV4dCgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6
ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi0jaWYgUExBVEZPUk0oV0lOKQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp1cGxvYWRGaWxlVGV4dCgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInVwbG9hZCI7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmFsbEZpbGVzVGV4dCgpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gImFsbCBmaWxlcyI7Ci19Ci0KLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpi
dWlsdEluUERGUGx1Z2luTmFtZSgpCi17Ci0gICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4KLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0IGJ1aWx0LWluIFBERiIsICJQc2V1ZG8gcGx1
Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6cGRmRG9jdW1lbnRU
eXBlRGVzY3JpcHRpb24oKQotewotICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCi0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBvcnRhYmxlIERvY3VtZW50IEZvcm1hdCIsICJEZXNjcmlwdGlv
biBvZiB0aGUgKG9ubHkpIHR5cGUgc3VwcG9ydGVkIGJ5IFBERiBwc2V1ZG8gcGx1Zy1pbi4gVmlz
aWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtNTEyKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRs
ZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtMTAyNCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIjEwMjQgKE1lZGl1bSBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4g
cG9wLXVwIG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMjA0OCAo
SGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6a2V5Z2VuS2V5Y2hhaW5J
dGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBob3N0Q0ZTdHJpbmcoQWRvcHRDRiwgaG9zdC5jcmVhdGVDRlN0cmluZygpKTsKLSAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIktleSBmcm9tICVAIiwgIk5h
bWUgb2Yga2V5Y2hhaW4ga2V5IGdlbmVyYXRlZCBieSB0aGUgS0VZR0VOIHRhZyIpLCBob3N0Q0ZT
dHJpbmcuZ2V0KCkpOwotfQotCi0jaWYgUExBVEZPUk0oSU9TKQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90IGNvdW50KQot
ewotICAgIHN3aXRjaCAoY291bnQpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBtdWx0aXBs
ZT4gd2hlbiBubyA8b3B0aW9uPiBpdGVtcyBhcmUgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAg
IGNhc2UgMToKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEgSXRlbSIsICJQcmVzZW50
IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gYSBzaW5nbGUgPG9wdGlvbj4gaXMg
c2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJXp1IEl0ZW1zIiwgIlByZXNlbnQgdGhl
IG51bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9uPiBpdGVtcyBpbiBhIDxzZWxlY3QgbXVsdGlwbGU+
IGVsZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3VudCk7Ci0gICAgfQotfQotI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKLXsKLSNpZiBVU0UoQ0YpCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRv
cHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgUmV0YWluUHRyPENGTG9jYWxl
UmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsKLSAgICBSZXRhaW5Q
dHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBDRk51bWJlckZvcm1h
dHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRlckRlY2ltYWxTdHls
ZSkpOwotCi0gICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOwotICAgIFJldGFpblB0cjxD
Rk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50
VHlwZSwgJndpZHRoSW50KSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB3aWR0aFN0cmlu
ZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1iZXIoMCwgZm9y
bWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOwotCi0gICAgaW50IGhlaWdodEludCA9IHNpemUu
aGVpZ2h0KCk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQoQWRvcHRDRiwgQ0ZO
dW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkpOwotICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVy
Q3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhlaWdodC5nZXQoKSkp
OwotCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAl
QMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2Vz
IG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCks
IHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3Jl
YXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25l
IGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZT
dHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0jZW5kaWYKLSNlbHNl
Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCI8ZmlsZW5h
bWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2Ug
KHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53aWR0aCgpLCBzaXpl
LmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwotI2VuZGlmCi19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om1lZGlhRWxlbWVudExvYWRpbmdT
dGF0ZVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptZWRpYUVsZW1lbnRM
aXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2
ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNo
aW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcm
IG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAgICBp
ZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
InZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1lID09ICJNdXRl
QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0b24i
KTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxheSBi
dXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZv
ciBwYXVzZSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1
bWIiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRodW1i
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIiKTsK
LSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJSZXR1
cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVy
biB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJldHVy
biB0byByZWFsIHRpbWUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlz
cGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOwot
ICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKLSAgICBpZiAobmFtZSA9PSAiU3Rh
dHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKLSAgICBpZiAo
bmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50ZXIg
ZnVsbHNjcmVlbiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24i
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vzc2li
aWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0
IHJldmVyc2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1
dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0aW9u
cyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNhcHRp
b25zIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24i
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBi
dXR0b24iKTsKLQotICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIgc2hv
dWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5LgotICAg
IGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwot
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xF
bGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09ICJB
dWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXVkaW8gZWxlbWVu
dCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAgICBpZiAo
bmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZp
ZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9sbGVyIik7
Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG11
dGUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciB1biBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJQbGF5QnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJlZ2luIHBsYXliYWNrIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXVzZSBwbGF5
YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGF1c2UgYnV0dG9uIik7Ci0gICAg
aWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtb3Zp
ZSB0aW1lIHNjcnViYmVyIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0aW1lbGluZSBz
bGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7Ci0gICAgaWYgKG5hbWUgPT0g
IlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIG1vdmll
IGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IganVtcCBiYWNr
IDMwIHNlY29uZHMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVC
dXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHN0cmVhbWluZyBt
b3ZpZSB0byByZWFsIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHJldHVybiBz
dHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJD
dXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY3VycmVu
dCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGVs
YXBzZWQgdGltZSBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNw
bGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm51bWJlciBvZiBzZWNvbmRzIG9m
IG1vdmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcmVtYWluaW5n
IHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgc3RhdHVzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlzcGxheSIpOwotICAgIGlmIChuYW1l
ID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVr
IHF1aWNrbHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCByZXdpbmQg
YnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBmb3J3YXJkIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0g
IkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGxheSBt
b3ZpZSBpbiBmdWxsc2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGVu
dGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0
aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGFydCBkaXNwbGF5
aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Igc2hvdyBj
bG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkhpZGVDbG9zZWRDYXB0
aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdG9wIGRpc3BsYXlp
bmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBoaWRlIGNs
b3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsKLSAgICBpZiAo
IWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5kZWZpbml0
ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1lZGlh
IGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOwotCi0gICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2Fz
dDxpbnQ+KGZhYnNmKHRpbWUpKTsgCi0gICAgaW50IGRheXMgPSBzZWNvbmRzIC8gKDYwICogNjAg
KiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKLSAgICBpbnQgbWlu
dXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAlPSA2MDsKLQotICAgIGlm
IChkYXlzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJ
TkcoIiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29uZHMiLCAiYWNj
ZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+PSAx
IGRheSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7Ci0gICAgaWYgKGhvdXJzKQot
ICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQg
aG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4
dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMiKSwgaG91cnMs
IG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIGlmIChtaW51dGVzKQotICAgICAgICByZXR1cm4gZm9y
bWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgbWludXRlcyAlMiRkIHNlY29u
ZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2
YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBzZWNvbmRzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPCA2MCBzZWNv
bmRzIiksIHNlY29uZHMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVxdWly
ZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOwotfQotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUg
bm90IG1hdGNoaW5nIHR5cGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2Ug
Zm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNj
b3JkaW5nIHRvIHBhdHRlcm4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9s
IGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3Ro
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250
cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVy
Zmxvd1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBo
aWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVjdGluZyB0aGUg
c3RlcCBhdHRyaWJ1dGUiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhMjJlOWRmNTE2OTk2YTgzNzdhZWQ0YzY4OTQzMTVkZDliYWYxZWFkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneV9oCi0jZGVmaW5lIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0K
LSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2luY2x1ZGUgIkxvY2FsaXphdGlvblN0
cmF0ZWd5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5IDogcHVibGljIExv
Y2FsaXphdGlvblN0cmF0ZWd5IHsKLXB1YmxpYzoKLSAgICBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3koKTsKLQotICAgIHN0YXRpYyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kmIHNoYXJl
ZCgpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3Vi
bWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNo
b29zZUZpbGVMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0
aXBsZUZpbGVzTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2Vs
ZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0
ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQo
KTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93
bkZpbGVMYWJlbCgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1h
Z2VUb0NsaXBib2FyZCgpOwotI2lmIFBMQVRGT1JNKFFUKQotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Ci0jZW5kaWYKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdG9wKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
UmVsb2FkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKLSNpZiBQTEFURk9S
TShHVEspCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpOwotI2VuZGlmCi0jaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdyk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3BlZWNoTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1N0YXJ0U3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdG9wU3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhib29sIHNob3cpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsKLSNlbmRpZgot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3co
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xp
bmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYU11dGUoKTsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICB2
aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgQVhXZWJBcmVhVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTGlua1RleHQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEhlYWRpbmdUZXh0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCk7Ci0jaWYgUExBVEZP
Uk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3Qg
U3RyaW5nJiBhcmlhVHlwZSk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEJ1dHRvbkFj
dGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigp
OwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpOwotICAgIHZpcnR1
YWwgU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0UG9w
dXBBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY3Jhc2hlZFBsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtdWx0aXBsZUZpbGVV
cGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwotICAgIHZpcnR1YWwgU3RyaW5nIHVu
a25vd25GaWxlU2l6ZVRleHQoKTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJp
bmcgdXBsb2FkRmlsZVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBhbGxGaWxlc1RleHQoKTsK
LSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBidWlsdEluUERG
UGx1Z2luTmFtZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHBkZkRvY3VtZW50VHlwZURlc2NyaXB0
aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTEwMjQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXln
ZW5NZW51SXRlbTIwNDgoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1O
YW1lKGNvbnN0IFN0cmluZyYgaG9zdCk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwg
U3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCk7Ci0jZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBpbWFn
ZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJik7
Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0
KGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURl
c2NyaXB0aW9uKGZsb2F0KTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZh
bHVlTWlzc2luZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBh
dHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZVVuZGVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlT3ZlcmZsb3dUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KCk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2VuZGlmIC8vIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9u
U3RyYXRlZ3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZhYjc2NGI4NmFlZWNm
ZGU4MDAzOGY1ZDJmMzI5MTdmNTI4ZjlkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJh
dGVneS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDEwIElnYWxpYSBTLkwKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMb2NhbGl6YXRpb25TdHJhdGVn
eV9oCi0jZGVmaW5lIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLQotI2lmIFVTRShQTEFURk9STV9T
VFJBVEVHSUVTKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBJbnRTaXplOwotCi1jbGFzcyBMb2NhbGl6YXRpb25TdHJhdGVneSB7Ci1w
dWJsaWM6ICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSA9IDA7Ci0KLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpID0g
MDsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5l
d1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZEltYWdlVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkgPSAwOwotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpID0gMDsKLSNlbmRpZgotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDdXQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnUGFzdGUoKSA9IDA7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0RlbGV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVW5pY29kZSgpID0gMDsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSA9IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBz
ZWxlY3RlZFN0cmluZykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ln
bm9yZUdyYW1tYXIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkg
PSAwOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTaG93Rm9udHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3R5bGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1Nob3dDb2xvcnMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3BlZWNoTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdGFydFNwZWFraW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1N0b3BTcGVha2luZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJvb2wgc2hvdykg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3Rl
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVz
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVz
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3Mo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2Vt
ZW50KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9y
bWF0aW9uc01lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWFrZVVwcGVyQ2FzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNYWtlTG93ZXJDYXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NhcGl0YWxpemUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKSA9IDA7Ci0jZW5kaWYK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRv
dygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9J
bk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVu
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgp
ID0gMDsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLQotICAgIHZpcnR1YWwgU3Ry
aW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLQotICAgIHZpcnR1
YWwgU3RyaW5nIEFYV2ViQXJlYVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5r
VGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYSGVhZGluZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9u
TGlzdFRlcm1UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0
cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpID0gMDsK
LSNlbmRpZgotICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFY
TWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5r
QWN0aW9uVmVyYigpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVtYmVyT2ZG
aWxlcykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKSA9IDA7
Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJpbmcgdXBsb2FkRmlsZVRleHQo
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWxsRmlsZXNUZXh0KCkgPSAwOwotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgYnVpbHRJblBERlBsdWdpbk5h
bWUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24o
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGtleWdlbk1lbnVJdGVtMjA0OCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5L
ZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkgPSAwOwotI2VuZGlmCi0KLSAgICB2
aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IElu
dFNpemUmIHNpemUpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxlbWVudExvYWRp
bmdTdGF0ZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJy
b2FkY2FzdFN0YXRlVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJikg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZs
b2F0KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UGF0dGVybk1pc21hdGNoVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVRvb0xvbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0g
ICAgdmlydHVhbCB+TG9jYWxpemF0aW9uU3RyYXRlZ3koKQotICAgIHsKLSAgICB9Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lF
UykKLQotI2VuZGlmIC8vIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMTQwOWJiZjMxYjFhYjJlM2I3NGVl
MzQwNTdiNjRlN2U4MGJjZGUwYy4uYTUxNDNhY2NiMTY5MTEzZTMwZjQ1NWY3ZDlmYWRmMmExZDU4
NTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNiwgMjAwOSwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAt
MjcsNzExICsyNyw5MjkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIK
ICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2lmIFVTRShDRikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYKKyNpbmNsdWRl
IDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgorCisjaWYgUExBVEZPUk0oTUFDKQorI2lu
Y2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKKy8vIFdlIGNhbid0IHVzZSBT
dHJpbmc6OmZvcm1hdCBmb3IgdHdvIHJlYXNvbnM6CisvLyAgMSkgSXQgZG9lc24ndCBoYW5kbGUg
bm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gdGhlIGZvcm1hdCBzdHJpbmcuCisvLyAgMikgSXQgZG9l
c24ndCBoYW5kbGUgdGhlICUyJGQgc3ludGF4LgorLy8gTm90ZSB0aGF0IGJlY2F1c2UgfGZvcm1h
dHwgaXMgdXNlZCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byB2YV9zdGFydCwgaXQgY2Fubm90
IGJlIGEgcmVmZXJlbmNlCisvLyB0eXBlIGFjY29yZGluZyB0byBzZWN0aW9uIDE4LjcvMyBvZiB0
aGUgQysrIE4xOTA1IHN0YW5kYXJkLgorc3RhdGljIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJp
bmcoU3RyaW5nIGZvcm1hdCwgLi4uKQoreworI2lmIFVTRShDRikKKyAgICB2YV9saXN0IGFyZ3Vt
ZW50czsKKyAgICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7CisgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBmb3JtYXRDRlN0cmluZyhBZG9wdENGLCBmb3JtYXQuY3JlYXRlQ0ZTdHJpbmco
KSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQoQWRvcHRDRiwgQ0ZTdHJpbmdD
cmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdENGU3RyaW5nLmdldCgpLCBh
cmd1bWVudHMpKTsKKyAgICB2YV9lbmQoYXJndW1lbnRzKTsKKyAgICByZXR1cm4gcmVzdWx0Lmdl
dCgpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmb3JtYXQ7Cisj
ZW5kaWYKK30KIAotc3RhdGljIGlubGluZSBMb2NhbGl6YXRpb25TdHJhdGVneSogbG9jYWxpemF0
aW9uU3RyYXRlZ3koKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKK3N0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3Ry
aW5nRm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKIHsKLSAgICBpZiAo
aGFzUGxhdGZvcm1TdHJhdGVnaWVzKCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKKyAgICBpZiAob3JpZ2luYWwuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gb3JpZ2luYWw7CiAKLSAgICByZXR1cm4gJkRlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6c2hhcmVkKCk7CisgICAgLy8gVHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBp
dCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGggQXBwS2l0LgorICAgIHVu
c2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0gPSAyNDsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMsICgmaG9yaXpvbnRhbEVs
bGlwc2lzLCAxKSk7CisKKyAgICBTdHJpbmcgdHJpbW1lZCA9IG9yaWdpbmFsLnN0cmlwV2hpdGVT
cGFjZSgpOworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVycyA9IG51bUNoYXJhY3RlcnNJ
bkdyYXBoZW1lQ2x1c3RlcnModHJpbW1lZCwgbWF4TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5M
b29rdXBNZW51SXRlbSk7CisgICAgcmV0dXJuIG51bWJlck9mQ2hhcmFjdGVycyA9PSB0cmltbWVk
Lmxlbmd0aCgpID8gdHJpbW1lZCA6IHRyaW1tZWQubGVmdChudW1iZXJPZkNoYXJhY3RlcnMpICsg
ZWxsaXBzaXM7CiB9CisjZW5kaWYKIAogU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5pbnB1dEVsZW1lbnRBbHRUZXh0KCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBl
bGVtZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0
bGUsIG9yIHZhbHVlIik7CiB9CiAKIFN0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwg
Zm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAKIFN0cmluZyBz
ZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5zZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3
b3JkczogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dCB0aGF0IGFwcGVhcnMgYXQg
dGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0gb2YgYSAn
c2VhcmNoYWJsZSBpbmRleCciKTsKIH0KIAogU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJl
bCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnN1Ym1pdEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVs
dCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAK
IFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBj
aG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKIH0KIAogU3RyaW5nIGZpbGVCdXR0
b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5maWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBm
aWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQg
YmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7CiB9CiAKIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZp
bGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Im5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQg
aW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKIH0KIAogU3RyaW5nIGZp
bGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
ZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVk
IGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwog
fQogCiBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFp
bHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKIH0KIAogI2lmIFBMQVRG
T1JNKE1BQykKIFN0cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVua25vd24gZmlsZW5hbWUiKTsK
IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBp
biBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlu
a2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3Bl
biBJbWFnZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFn
ZVRvRGlzaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiRG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBJbWFn
ZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKLSNpZiBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCi1TdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgp
OwotfQotI2VuZGlmCi0KIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dp
bmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Ik9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdD
b3B5KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnR29CYWNr
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3
YXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZvcndhcmQiLCAiRm9yd2FyZCBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0
b3AoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RvcCIsICJTdG9wIGNvbnRleHQgbWVu
dSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ3V0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogI2lmIFBMQVRGT1JNKFFUKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1NlbGVjdEFsbCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJTZWxlY3Qg
QWxsIjsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91
bmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyBHdWVz
c2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAog
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBT
cGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTGVhcm5TcGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFy
Y2hJblNwb3RsaWdodCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdodCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFy
Y2hXZWIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTZWFyY2hXZWIoKTsKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0Nv
cHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICByZXR1cm4gZm9ybWF0
TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3
aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUg
aW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKKyNlbHNlCisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJpbmcpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0xvb2tV
cEluRGljdGlvbmFyeShzZWxlY3RlZFN0cmluZyk7CisjaWYgZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBVTlVTRURf
UEFSQU0oc2VsZWN0ZWRTdHJpbmcpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVw
IGluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVt
Iik7CisjZWxzZQorI2lmIFVTRShDRikKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlbGVj
dGVkQ0ZTdHJpbmcoQWRvcHRDRiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2Vs
ZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiTG9vayBVcCDigJwlQOKAnSIsICJMb29rIFVwIGNvbnRl
eHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLCBzZWxlY3RlZENGU3RyaW5nLmdldCgp
KTsKKyNlbHNlCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCcPHNlbGVjdGlv
bj7igJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQiKS5y
ZXBsYWNlKCI8c2VsZWN0aW9uPiIsIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKHNl
bGVjdGVkU3RyaW5nKSk7CisjZW5kaWYKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkxpbmsoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJP
cGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJZ25vcmUgR3JhbW1hciBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdN
ZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnU3BlbGxpbmdNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWxsaW5n
IGFuZCBHcmFtbWFyIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9v
bCBzaG93KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChzaG93KTsKKyAgICBpZiAoc2hvdykKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBp
dGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5k
IEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDaGVja1NwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcgd2hp
bGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5n
IiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7
CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0Zv
bnRzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnU2hvd0ZvbnRzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgRm9udHMi
LCAiU2hvdyBmb250cyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0l0YWxpYygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJ
dGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0eWxlcy4uLiIsICJTdHlsZXMg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dD
b2xvcnMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdTaG93Q29sb3JzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgQ29s
b3JzIiwgIlNob3cgY29sb3JzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTcGVlY2giLCAiU3BlZWNoIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmco
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RhcnQgU3BlYWtpbmciLCAiU3RhcnQgc3Bl
YWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1N0b3BTcGVha2luZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
ICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXJh
Z3JhcGggRGlyZWN0aW9uIiwgIlBhcmFncmFwaCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1RleHREaXJlY3Rpb25NZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlv
biBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEZWZh
dWx0RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVm
YXVsdCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmlnaHQgdG8gTGVmdCIs
ICJSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShN
QUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNh
bGx5KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkiLCAiQ29ycmVjdCBTcGVsbGlu
ZyBBdXRvbWF0aWNhbGx5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAiU3Vic3RpdHV0aW9ucyBjb250
ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
dWJzdGl0dXRpb25zKGJvb2wgc2hvdykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoc2hvdyk7CisgICAgaWYg
KHNob3cpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFN1YnN0aXR1dGlvbnMi
LCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vi
c3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiU21hcnQgQ29weS9QYXN0ZSIsICJTbWFydCBDb3B5L1Bhc3RlIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3Rlcygp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1NtYXJ0UXVvdGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0IFF1b3RlcyIs
ICJTbWFydCBRdW90ZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250ZXh0IG1lbnUgaXRlbSIp
OwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcygpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3Mo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3Mg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHRS
ZXBsYWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJUZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFjZW1lbnQgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdU
cmFuc2Zvcm1hdGlvbnNNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRyYW5zZm9y
bWF0aW9ucyIsICJUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVyIENhc2UiLCAiTWFrZSBVcHBl
ciBDYXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNYWtlTG93ZXJDYXNlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNlIGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6
ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDYXBpdGFsaXplIiwgIkNhcGl0YWxpemUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5n
ZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhyZXBsYWNlZFN0
cmluZyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVwbGFjZWRTdHJpbmc7
CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVv
IGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93IiwgIk9w
ZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlu
a1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRk
cmVzcyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsK
IH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
b3B5IEF1ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJDb250cm9scyIsICJNZWRpYSBDb250cm9scyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJFbnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBsYXkg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwg
Ik1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAgICAgCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAiSW5zcGVjdCBFbGVt
ZW50IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKIAogU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVz
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyByZWNlbnQgc2VhcmNoZXMiLCAi
TGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9u
IHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBiZWVuIHBlcmZv
cm1lZCIpOwogfQogCi1TdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCAoKQorU3Ry
aW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0ICgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0
ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBm
aWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7CiB9CiAKIFN0cmluZyBz
ZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVzIiwgIm1lbnUgaXRl
bSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdzIGNvbnRlbnRzIik7
CiB9CiAKIFN0cmluZyBBWFdlYkFyZWFUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+QVhXZWJBcmVhVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJI
VE1MIGNvbnRlbnQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB3ZWIgYXJl
YSIpOwogfQogCiBTdHJpbmcgQVhMaW5rVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPkFYTGlua1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygibGlu
ayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpbmsiKTsKIH0KIAogU3Ry
aW5nIEFYTGlzdE1hcmtlclRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5BWExpc3RNYXJrZXJUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpc3Qg
bWFya2VyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbGlzdCBtYXJrZXIi
KTsKIH0KIAogU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+QVhJbWFnZU1hcFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1hZ2Ug
bWFwIik7CiB9CiAKIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+QVhIZWFkaW5nVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGlu
Z3MiKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJtIiwgInRlcm0gd29yZCBvZiBhIGRlZmluaXRp
b24iKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3REZWZpbml0
aW9uVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkZWZpbml0aW9uIiwgImRlZmlu
aXRpb24gcGhyYXNlIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgQVhBUklBQ29u
dGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5BWEFSSUFDb250ZW50R3JvdXBUZXh0KGFyaWFUeXBlKTsKKyAg
ICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0IikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGFjdHMgYXMgYW4gYWxlcnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRp
b25BbGVydERpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCBkaWFs
b2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBk
aWFsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9nLiIpOworICAgIGlmIChhcmlhVHlwZSA9
PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxv
ZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgY29uc29sZSBs
b2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25NYXJxdWVlIikKKyAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUuIik7CisgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
YXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxp
Y2F0aW9uVGltZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZXIiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiB1cGRhdGluZyB0aW1lci4i
KTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhh
dCBhY3RzIGFzIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1l
bnRBcnRpY2xlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFydGljbGUiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhcnRpY2xlLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50Tm90ZSIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJub3RlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMg
YXMgYSBub3RlIGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9j
dW1lbnRSZWdpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24g
aW4gYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0FwcGxp
Y2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXBwbGljYXRpb24uIik7
CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtCYW5uZXIiKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiYmFubmVyIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGFjdHMgYXMgYSBiYW5uZXIuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1h
cmtDb21wbGVtZW50YXJ5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbXBsZW1l
bnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHJlZ2lv
biBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAi
QVJJQUxhbmRtYXJrQ29udGVudEluZm8iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
Y29udGVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBjb250
ZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrTWFpbiIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYWluIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91
cCB0aGF0IGlzIHRoZSBtYWluIHBvcnRpb24gb2YgdGhlIHdlYnNpdGUuIik7CisgICAgaWYgKGFy
aWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQg
Y29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBhIHdlYnNpdGUuIik7Cisg
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGNvbnRhaW5zIGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOworICAgIGlmIChhcmlh
VHlwZSA9PSAiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInRvb2x0aXAiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0
cyBhcyBhIHRvb2x0aXAuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNz
aWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRh
aW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KICNl
bmRpZgogICAgIAogU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQnV0dG9uQWN0aW9uVmVyYigpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwg
b2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHki
KTsKIH0KIAogU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRo
YXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkg
YWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhUZXh0RmllbGRBY3Rpb25WZXJi
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRlIiwgIlZlcmIgc3RhdGluZyB0
aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVsZCBpcyBzZWxlY3RlZCwg
YXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWENoZWNrZWRDaGVja0Jv
eEFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWENo
ZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5j
aGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGNo
ZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9
CiAKIFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0
aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2Vk
LCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYTGlua0FjdGlvblZl
cmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWExpbmtBY3Rpb25W
ZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRo
ZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQg
YnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVy
YigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTWVudUxpc3RQb3B1
cEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0
IjsKIH0KIAogU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0IjsKIH0KIAogU3RyaW5nIG1pc3NpbmdQbHVn
aW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWlzc2luZ1Bs
dWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWlzc2luZyBQbHVnLWluIiwg
IkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3NpbmciKTsKIH0KIAog
U3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y3Jhc2hlZFBsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
UGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCBpZiBwbHVnaW4gaG9zdCBw
cm9jZXNzIGhhcyBjcmFzaGVkIik7CiB9CiAKIFN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0
KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPm11bHRpcGxlRmlsZVVwbG9hZFRleHQobnVtYmVyT2ZGaWxlcyk7CisgICAgcmV0dXJu
IGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJMYWJlbCB0
byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1cGxvYWQg
Y29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVzKTsKIH0K
IAogU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT51bmtub3duRmlsZVNpemVUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3Rpbmcg
aXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oV0lOKQogU3RyaW5nIHVwbG9hZEZpbGVUZXh0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dXBsb2FkRmlsZVRleHQoKTsK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAidXBsb2FkIjsKIH0KIAogU3RyaW5n
IGFsbEZpbGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmFs
bEZpbGVzVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJhbGwgZmls
ZXMiOwogfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgYnVpbHRJblBERlBs
dWdpbk5hbWUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5idWlsdElu
UERGUGx1Z2luTmFtZSgpOworICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIldlYktpdCBidWlsdC1pbiBQREYiLCAiUHNldWRvIHBsdWctaW4gbmFt
ZSwgdmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7CiB9CiAK
IFN0cmluZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPnBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uKCk7CisgICAgLy8g
QWxzbyBleHBvc2VkIHRvIERPTS4KKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUG9ydGFibGUg
RG9jdW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkgdHlwZSBzdXBwb3J0
ZWQgYnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBw
YWdlIGluIFNhZmFyaS4iKTsKIH0KIAogU3RyaW5nIGtleWdlbk1lbnVJdGVtNTEyKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0ZW01MTIoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRs
ZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5NZW51SXRlbTEw
MjQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXlnZW5NZW51SXRl
bTEwMjQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAyNCAoTWVkaXVtIEdyYWRlKSIs
ICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwogfQogCiBTdHJpbmcg
a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+a2V5Z2VuTWVudUl0ZW0yMDQ4KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjIwNDgg
KEhpZ2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7
CiB9CiAKIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuS2V5Y2hhaW5JdGVt
TmFtZShob3N0KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRlN0cmluZyhBZG9w
dENGLCBob3N0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBrZXljaGFpbiBrZXkg
Z2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0cmluZy5nZXQoKSk7CiB9CiAK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0
ZW1zKHNpemVfdCBjb3VudCkKK3sKKyAgICBzd2l0Y2ggKGNvdW50KSB7CisgICAgY2FzZSAwOgor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMCBJdGVtcyIsICJQcmVzZW50IHRoZSBlbGVt
ZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gbm8gPG9wdGlvbj4gaXRlbXMgYXJlIHNlbGVjdGVk
IChpT1Mgb25seSkiKTsKKyAgICBjYXNlIDE6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCIxIEl0ZW0iLCAiUHJlc2VudCB0aGUgZWxlbWVudCA8c2VsZWN0IG11bHRpcGxlPiB3aGVuIGEg
c2luZ2xlIDxvcHRpb24+IGlzIHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiV6dSBJ
dGVtcyIsICJQcmVzZW50IHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgPG9wdGlvbj4gaXRlbXMgaW4g
YSA8c2VsZWN0IG11bHRpcGxlPiBlbGVtZW50IChpT1Mgb25seSkiKSwgY291bnQpOworICAgIH0K
K30KKyNlbmRpZgorCiBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBj
b25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5pbWFnZVRpdGxlKGZpbGVuYW1lLCBzaXplKTsKKyNpZiBVU0UoQ0YpCisjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1l
Q0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgUmV0YWlu
UHRyPENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsK
KyAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBD
Rk51bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRl
ckRlY2ltYWxTdHlsZSkpOworCisgICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOworICAg
IFJldGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwg
a0NGTnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiB3aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhO
dW1iZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOworCisgICAgaW50IGhlaWdo
dEludCA9IHNpemUuaGVpZ2h0KCk7CisgICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQo
QWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkp
OworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVt
YmVyRm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhl
aWdodC5nZXQoKSkpOworCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25l
IGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZT
dHJpbmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOworI2Vs
c2UKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwg
ZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0
cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3Ig
YSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiks
IGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Cisj
ZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5k
YWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwor
I2VuZGlmCiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRl
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwgIk1lZGlhIGNv
bnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOwogfQog
CiBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0
ZVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVk
aWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNh
c3QiKTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29u
c3QgU3RyaW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb250cm9sTmFt
ZSk7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0eSByb2xl
IGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAgICBpZiAobmFt
ZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZpZGVv
IGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9u
IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11
dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0b24iKTsKKyAg
ICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxheSBidXR0b24i
KTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBwYXVz
ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciB0aW1lbGluZSBzbGlkZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRodW1iIiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIiKTsKKyAgICBp
ZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNl
ZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVybiB0byBy
ZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJldHVybiB0byBy
ZWFsIHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlm
IChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlz
cGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKKyAgICBpZiAobmFtZSA9
PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmdWxs
c2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50ZXIgZnVsbHNj
cmVlbiBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAgIGlmIChuYW1l
ID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmYXN0
IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0IHJldmVy
c2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0aW9ucyIsICJh
Y2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1
dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24i
KTsKKworICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIgc2hvdWxkIG5l
dmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5LgorICAgIGlmIChu
YW1lID09ICJDb250cm9sc1BhbmVsIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcg
bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgY29udHJv
bE5hbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0
IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnRyb2xOYW1lKTsKKyAgICBpZiAo
bmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImF1
ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIik7
CisgICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxh
eSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29u
dHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIGF1ZGlvIHRyYWNrcyIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9
PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiZWdpbiBwbGF5
YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxheSBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cGF1c2UgcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHBhdXNlIGJ1dHRv
biIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
dGltZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiYWNj
ZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0aHVtYiIpOworICAgIGlm
IChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
c2VlayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IGp1bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5U
b1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJldHVybiBz
dHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciByZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImN1cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVt
YWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJudW1iZXIgb2Yg
c2Vjb25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IHJlbWFpbmluZyB0aW1lIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxh
eSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50IG1vdmllIHN0YXR1cyIs
ICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3RhdHVzIGRpc3BsYXkiKTsKKyAg
ICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygic2VlayBxdWlja2x5IGJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGZh
c3QgcmV3aW5kIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJh
Y2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAgIGlm
IChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTaG93
Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3Rh
cnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQg
Zm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRl
Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3Rv
cCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5sb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsKKyAgICBpZiAoIWlz
ZmluaXRlKHRpbWUpKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5kZWZpbml0ZSB0
aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1lZGlhIGNv
bnRyb2xsZXIgdGltZSB2YWx1ZSIpOworCisgICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2FzdDxp
bnQ+KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0
KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVz
ID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRh
eXMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygi
JTEkZCBkYXlzICUyJGQgaG91cnMgJTMkZCBtaW51dGVzICU0JGQgc2Vjb25kcyIsICJhY2Nlc3Np
YmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDEgZGF5
IiksIGRheXMsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAoaG91cnMpCisgICAg
ICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBob3Vy
cyAlMiRkIG1pbnV0ZXMgJTMkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgbWludXRlcyIpLCBob3VycywgbWlu
dXRlcywgc2Vjb25kcyk7CisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBtaW51dGVzICUyJGQgc2Vjb25kcyIs
ICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVl
ID49IDYwIHNlY29uZHMiKSwgbWludXRlcywgc2Vjb25kcyk7CisgICAgcmV0dXJuIGZvcm1hdExv
Y2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA8IDYwIHNlY29uZHMi
KSwgc2Vjb25kcyk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1Rl
eHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidmFsdWUg
bWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29udHJvbCBl
bGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JGaWxlVGV4dCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0K
IAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4
dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
Rm9yUmFkaW9UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VW
YWx1ZU1pc3NpbmdGb3JTZWxlY3RUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZv
ciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOwog
fQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvck11
bHRpcGxlRW1haWxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBt
ZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFpbmVkIHZh
bHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KGludCwgaW50KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT52YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVs
ZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIik7
CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBT
dHJpbmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9u
TWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJy
YW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKTsKIH0KIAogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92
ZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBo
aWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoKTsKLX0KLQotI2VuZGlmIC8vIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQotCi0j
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikKLVN0cmluZyBsb2NhbGl6ZWRTdHJp
bmcoY29uc3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwg
c3RybGVuKGtleSkpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5v
dCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
aAppbmRleCBhNzNjOTkxZmVkYTk3ZWU5OWI5YWZlMjg3YzVjNjBiNjMxYTczNTJhLi41MzJlYTFj
N2JlMTMwMDljODI5NjdkYjgyMGM3NmQ0Nzc3ZTJiMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xNzQsNiArMTc0LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcm
IGhvc3QpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgU3RyaW5nIGh0bWxTZWxl
Y3RNdWx0aXBsZUl0ZW1zKHNpemVfdCBudW0pOworI2VuZGlmCisKICAgICBTdHJpbmcgaW1hZ2VU
aXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKTsKIAogICAg
IFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7CkBAIC0xOTgsMTEgKzIwMiwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKTsKICAgICBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFzZSwgY29uc3QgU3Ry
aW5nJiBzdGVwKTsKIAotCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCiAjZGVm
aW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5nLCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVk
U3RyaW5nKHN0cmluZykKICNkZWZpbmUgV0VCX1VJX1NUUklOR19LRVkoc3RyaW5nLCBrZXksIGRl
c2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoa2V5KQogCiAgICAgU3RyaW5nIGxv
Y2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oV0lOKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGRjOWZjMzVhNzBl
OTNjZTY0MzlmN2JhNzMzZjQ0ZDNkMjc2M2M3NGEuLjY0M2YzNzUwNThlY2I4MzBiYjU3ZDUwZTky
Y2RkNjU5MDNiMTYyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcApAQCAtMjksOCArMjksNiBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUGxhdGZvcm1TdHJhdGVnaWVzKiBzX3BsYXRm
b3JtU3RyYXRlZ2llczsKQEAgLTU5LDExICs1Nyw2IEBAIGJvb2wgaGFzUGxhdGZvcm1TdHJhdGVn
aWVzKCkKICAgICByZXR1cm4gc19wbGF0Zm9ybVN0cmF0ZWdpZXM7CiB9CiAKLUxvY2FsaXphdGlv
blN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5
KCkKLXsKLSAgICByZXR1cm4gbmV3IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJ
RVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4
IDc0ODJkNjAwNWZmMDYzZDY1ZmMwNzdmYmI4YWExZDRkMTVkY2IzN2IuLjE0ZThjNGNmZTYwN2Ez
NzEyZjM2MTU3OTIxODE4OTMyYThiNGQ4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zMiw3ICszMiw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ29va2llc1N0cmF0ZWd5OwogY2xhc3MgUGx1Z2luU3RyYXRlZ3k7Ci1jbGFz
cyBMb2NhbGl6YXRpb25TdHJhdGVneTsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RyYXRlZ3k7CiAKIGNs
YXNzIFBsYXRmb3JtU3RyYXRlZ2llcyB7CkBAIC01MSwxMyArNTAsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX3BsdWdpblN0cmF0ZWd5OwogICAgIH0KIAotICAgIExvY2FsaXphdGlvblN0
cmF0ZWd5KiBsb2NhbGl6YXRpb25TdHJhdGVneSgpCi0gICAgewotICAgICAgICBpZiAoIW1fbG9j
YWxpemF0aW9uU3RyYXRlZ3kpCi0gICAgICAgICAgICBtX2xvY2FsaXphdGlvblN0cmF0ZWd5ID0g
Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKLSAgICAgICAgcmV0dXJuIG1fbG9jYWxpemF0
aW9uU3RyYXRlZ3k7Ci0gICAgfQotCiAgICAgVmlzaXRlZExpbmtTdHJhdGVneSogdmlzaXRlZExp
bmtTdHJhdGVneSgpCiAgICAgewogICAgICAgICBpZiAoIW1fdmlzaXRlZExpbmtTdHJhdGVneSkK
QEAgLTY5LDcgKzYxLDYgQEAgcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtU3RyYXRlZ2llcygpCiAg
ICAgICAgIDogbV9jb29raWVzU3RyYXRlZ3koMCkKICAgICAgICAgLCBtX3BsdWdpblN0cmF0ZWd5
KDApCi0gICAgICAgICwgbV9sb2NhbGl6YXRpb25TdHJhdGVneSgwKQogICAgICAgICAsIG1fdmlz
aXRlZExpbmtTdHJhdGVneSgwKQogICAgIHsKICAgICB9CkBAIC04MSwxMiArNzIsMTAgQEAgcHJv
dGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIENvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29v
a2llc1N0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBs
dWdpblN0cmF0ZWd5KCkgPSAwOwotICAgIHZpcnR1YWwgTG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNy
ZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBWaXNpdGVkTGlua1N0cmF0
ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkgPSAwOwogCiAgICAgQ29va2llc1N0cmF0
ZWd5KiBtX2Nvb2tpZXNTdHJhdGVneTsKICAgICBQbHVnaW5TdHJhdGVneSogbV9wbHVnaW5TdHJh
dGVneTsKLSAgICBMb2NhbGl6YXRpb25TdHJhdGVneSogbV9sb2NhbGl6YXRpb25TdHJhdGVneTsK
ICAgICBWaXNpdGVkTGlua1N0cmF0ZWd5KiBtX3Zpc2l0ZWRMaW5rU3RyYXRlZ3k7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0Vm
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHAKaW5kZXggMjcyNDBlODJiNTgxNGM0NWFiZDA1Y2JiNWMyZWU2ZTAyYTM3MTFhYS4uYzRhODJm
YTY2ZGY0Mzc4M2RhNDIwYjYzNzE2NmZmY2Q1MDVlN2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNTU1LDkgKzU1
NSw0IEBAIFN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoInBsdWdpbiBjcmFzaGVkIik7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29u
c3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwgc3RybGVu
KGtleSkpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
TG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9j
YWxpemVkU3RyaW5nc0d0ay5jcHAKaW5kZXggMDdiZWQ4ZGIzZTkwZWU2ZDI1MzlhNzVlZDJlMmJk
MzI1ZmU5NzM2Yy4uZmVmMzE3YzdmZTM2YTg0YzAzOTQwOWMyZmMwZGYyODg1ZjU4ZWVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcApAQCAtNjUyLDkgKzY1Miw0IEBAIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKICAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJzdGVwIG1pc21hdGNoIikpOwogfQogCi1TdHJpbmcgbG9jYWxpemVkU3Ry
aW5nKGNvbnN0IGNoYXIqIGtleSkKLXsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChrZXks
IHN0cmxlbihrZXkpKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E0OWI3MjgzOTE4MjdjMjNiNjJk
NTEwZjI1MDgyMWFiNzIwYjA1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKQEAgLTAsMCArMSw2ODcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgU3RhaWtvcyBDb21wdXRpbmcgU2VydmljZXMgSW5jLiA8aW5m
b0BzdGFpa29zLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJv
cmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJ
TmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKworI2luY2x1ZGUgIklu
dFNpemUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBpbnB1dEVsZW1lbnRB
bHRUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSBhbHQgdGV4dCBmb3IgPGlu
cHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Cit9CisKK1N0cmlu
ZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVz
ZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30KKworU3RyaW5nIHNlYXJjaGFi
bGVJbmRleEludHJvZHVjdGlvbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNl
YXJjaCBrZXl3b3JkczogIiwgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBuZWFy
bHktb2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgn
Iik7Cit9CisKK1N0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJkZWZh
dWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30K
KworU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlIiwgInRpdGxl
IGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIpOwor
fQorCitTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZp
bGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNlZCBpbiBI
VE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4iKTsK
K30KKworU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlIHNlbGVj
dGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMg
d2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxl
c1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBm
aWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0ZWQg
YW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7Cit9
CisKK1N0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZXRhaWxzIiwgInRleHQgdG8g
ZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1tYXJ5PiBjaGlsZCIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3Bl
biBpbiBOZXcgV2luZG93IiwgIk9wZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZl
IExpbmsuLi4iLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgTGlu
ayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEltYWdlIiwgIk9wZW4gSW1hZ2Ug
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBJbWFnZSIsICJEb3dubG9hZCBJbWFn
ZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgSW1hZ2UiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBi
b2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiQ29weSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJP
cGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gQXVkaW8iLCAiT3BlbiBB
dWRpbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8iLCAiQ29weSBWaWRlbyBMaW5rIExvY2F0
aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNvcHkgQXVkaW8iLCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29udHJv
bHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBs
YXliYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNj
cmVlbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXkiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIiwgIlBhdXNl
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUiLCAiTXV0
ZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3co
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
Ik9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IiwgIkNvcHkgY29u
dGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
R28gQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEZvcndhcmQiLCAiRm9yd2FyZCBjb250ZXh0IG1lbnUg
aXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RvcCIsICJTdG9w
IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0N1dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3V0IiwgIkN1dCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhc3RlIiwgIlBhc3RlIGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNl
bGVjdCBBbGwiLCAiU2VsZWN0IEFsbCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8g
R3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgU3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxp
bmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkFkZCBUbyBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlYXJjaCBUaGUg
V2ViIiwgIlNlYXJjaCBUaGUgV2ViIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb29rIFVw
IEluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5rIiwg
Ik9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnSWdub3JlR3JhbW1hcigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNw
ZWxsaW5nIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93
KQoreworICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpIDoK
KyAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIiwg
IkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxl
IFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGlu
ZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVs
bGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Rm9udE1lbnUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkZvbnRzIiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSXRhbGljIiwgIkl0
YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VW5kZXJsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPdXRsaW5lIiwgIk91dGxpbmUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1dyaXRp
bmdEaXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJEaXJlY3Rpb24iLCAiV3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBz
dWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0
aW9uTWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiVGV4dCBEaXJlY3Rpb24iLCAiVGV4dCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9u
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMZWZ0IHRvIFJp
Z2h0IiwgIkxlZnQgdG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExl
ZnQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lu
c3BlY3RFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJJbnNwZWN0IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyByZWNl
bnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3
aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMg
aGF2ZSBiZWVuIHBlcmZvcm1lZCIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJj
aGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiUmVjZW50IHNlYXJjaGVzIiwgImxhYmVsIGZvciBmaXJzdCBpdGVtIGluIHRoZSBt
ZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2Us
IHVzZWQgYXMgZW1iZWRkZWQgbWVudSB0aXRsZSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudUNs
ZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDbGVhciByZWNlbnQgc2VhcmNoZXMiLCAibWVudSBpdGVt
IGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMiKTsK
K30KKworU3RyaW5nIEFYV2ViQXJlYVRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhMaW5rVGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpc3RN
YXJrZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYSGVhZGluZ1RleHQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9u
VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZl
cmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVM
aXN0QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYTGlu
a0FjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJM
YWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOworfQorCitT
dHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNp
Z25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6
ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOworfQorCitTdHJpbmcgaW1hZ2VUaXRsZShj
b25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxICglMnglMyBwaXhl
bHMpIiwgIlRpdGxlIHN0cmluZyBmb3IgaW1hZ2VzIikuYXJnKGZpbGVuYW1lKS5hcmcoc2l6ZS53
aWR0aCgpKS5hcmcoc2l6ZS5oZWlnaHQoKSk7Cit9CisKK1N0cmluZyBtZWRpYUVsZW1lbnRMb2Fk
aW5nU3RhdGVUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3Nh
Z2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOworfQorCitTdHJpbmcgbWVkaWFFbGVtZW50
TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxl
ciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKK30KKwor
I2lmIEVOQUJMRShWSURFTykKKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1l
bnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJBdWRpbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlm
IChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xs
ZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSBCdXR0b24i
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1
dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlVubXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAg
aWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSBCdXR0b24i
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlciIp
CisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlNsaWRlciIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
U2xpZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTbGlkZXIgVGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBCdXR0b24iLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVC
dXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJSZXR1cm4gdG8gUmVhbC10aW1lIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRWxhcHNlZCBU
aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJUaW1l
UmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOworICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RhdHVzIERpc3BsYXki
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3Jl
ZW5CdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJGdWxsc2NyZWVuIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEZvcndhcmQgQnV0
dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTZWVr
QmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlNlZWsgQmFjayBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7CisKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1l
ID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBz
dGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFt
ZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQg
c3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5h
bWUgPT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIGF1ZGlv
IHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
UGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkJlZ2luIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIHBsYXliYWNrIiwgIk1lZGlh
IGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3ZpZSB0
aW1lIHNjcnViYmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1l
ID09ICJTbGlkZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiTWVkaWEgY29u
dHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2lu
ZCBtb3ZpZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbC10
aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJDdXJy
ZW50VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWlu
aW5nIG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5h
bWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHN0YXR1cyIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisg
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBs
YXkgbW92aWUgaW4gZnVsbC1zY3JlZW4gbW9kZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgYmFj
ayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0Jh
Y2tCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCit7
CisgICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZpbml0ZSB0aW1lIiwgIk1lZGlhIHRpbWUg
ZGVzY3JpcHRpb24iKTsKKworICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKKyAg
ICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMgPSBz
ZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2
MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRheXMpCisgICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGRheXMgJTIgaG91cnMg
JTMgbWludXRlcyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoZGF5
cykuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOworCisgICAgaWYgKGhvdXJz
KQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICIlMSBob3VycyAlMiBtaW51dGVzICUzIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlv
biIpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKKworICAgIGlmIChtaW51
dGVzKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICIlMSBtaW51dGVzICUyIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFy
ZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7CisKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRp
b24iKS5hcmcoc2Vjb25kcyk7Cit9CisKKyNlbHNlIC8vIEVOQUJMRShWSURFTykKKy8vIEZJWE1F
OiAjaWYgRU5BQkxFKFZJREVPKSBzaG91bGQgYmUgaW4gdGhlIGJhc2UgY2xhc3MKKworU3RyaW5n
IGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQor
eworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJv
bEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGlt
ZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8p
CisKKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVZhbHVlTWlzc2luZ0ZvckZpbGVUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ0ZvclJhZGlvVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0Zv
clNlbGVjdFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0
dGVybk1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCB2
YWx1ZUxlbmd0aCwgaW50IG1heExlbmd0aCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRl
cmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWluaW11bSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFzZSwgY29uc3QgU3RyaW5nJiBzdGVw
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3Ry
YXRlZ2llc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1T
dHJhdGVnaWVzUXQuY3BwCmluZGV4IDY0ZDQyNGQ5NTZlM2MwOGY1NGZlYWI3YmIxNjU4OTE0MmYy
MmVhMmUuLmJjNTE3MmViMzE4NTI4NzA0NGEyMzAzYTc3NjE0MjhiMTY0Y2U2NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVn
aWVzUXQuY3BwCkBAIC02OCwxMSArNjgsNiBAQCBQbHVnaW5TdHJhdGVneSogUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNyZWF0ZVBsdWdpblN0cmF0ZWd5KCkKICAgICByZXR1cm4gdGhpczsKIH0KIAot
TG9jYWxpemF0aW9uU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmVhdGVMb2NhbGl6
YXRpb25TdHJhdGVneSgpCi17Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KIFZpc2l0ZWRMaW5rU3Ry
YXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkK
IHsKICAgICByZXR1cm4gdGhpczsKQEAgLTE0NSw2MDggKzE0MCw2IEBAIHZvaWQgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmdldFBsdWdpbkluZm8oY29uc3QgV2ViQ29yZTo6UGFnZSogcGFnZSwgVmVj
dG9yPFdlYkNvCiAKIH0KIAotCi0vLyBMb2NhbGl6YXRpb25TdHJhdGVneQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJTdWJtaXQg
KGlucHV0IGVsZW1lbnQpIGFsdCB0ZXh0IGZvciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8gYWx0
LCB0aXRsZSwgb3IgdmFsdWUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpy
ZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVzZXQg
YnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0OjpzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRoaXMgaXMgYSBzZWFyY2hh
YmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsICJ0ZXh0IHRoYXQgYXBwZWFycyBh
dCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBh
ICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3VibWl0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFN1
Ym1pdCBidXR0b25zIGluIGZvcm1zIG9uIHdlYiBwYWdlcyIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlIiwg
InRpdGxlIGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jt
cyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25DaG9vc2VN
dWx0aXBsZUZpbGVzTGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBsZSBm
aWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91bGQg
YmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGUgc2VsZWN0ZWQiLCAi
dGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5v
IGZpbGUgaXMgc2VsZWN0ZWQiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpm
aWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQg
dG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxl
cyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJl
IHNlbGVjdGVkIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZGVmYXVsdERl
dGFpbHNTdW1tYXJ5VGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+
IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJP
cGVuIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJTYXZlIExpbmsuLi4iLCAiRG93bmxvYWQgTGlua2VkIEZpbGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IExpbmsiLCAiQ29weSBM
aW5rIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gSW1hZ2UiLCAi
T3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRv
RGlzaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiU2F2ZSBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJ
bWFnZVRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIEFkZHJlc3MiLCAiQ29weSBJbWFn
ZSBBZGRyZXNzIG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIFZpZGVvIiwgIk9w
ZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEF1ZGlvIiwg
Ik9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBW
aWRlbyIsICJDb3B5IFZpZGVvIExpbmsgTG9jYXRpb24iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQo
KQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IkNvcHkgQXVkaW8iLCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9s
cygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiVG9nZ2xlIENvbnRyb2xzIiwgIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiVG9nZ2xlIExvb3AiLCAiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiUGxheSIsICJQbGF5Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UiLCAiUGF1c2UiKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUo
KQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
Ik11dGUiLCAiTXV0ZSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEZyYW1lIiwgIk9wZW4gRnJh
bWUgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkiLCAiQ29weSBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ0dvQmFjaygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiR28gQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnR29G
b3J3YXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJHbyBGb3J3YXJkIiwgIkZvcndhcmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdG9w
IiwgIlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbG9hZCIsICJSZWxvYWQgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0
TWVudUl0ZW1UYWdDdXQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkN1dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGFzdGUi
LCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlbGVjdCBBbGwiLCAiU2VsZWN0
IEFsbCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBHdWVzc2VzIEZvdW5kIiwg
Ik5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3Jl
IiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkFkZCBU
byBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2Vi
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJTZWFyY2ggVGhlIFdlYiIsICJTZWFyY2ggVGhlIFdlYiBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tV
cEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcmKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxvb2sgVXAgSW4gRGljdGlvbmFyeSIsICJMb29r
IFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5rIiwg
Ik9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25v
cmUgR3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpCi17Ci0gICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3BlbGxpbmciLCAiU3Bl
bGxpbmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwo
Ym9vbCBzaG93KQotewotICAgIHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0
aXRsZSIpIDoKLSAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUi
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdD
aGVja1NwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJDaGVjayBTcGVsbGluZyIsICJDaGVjayBzcGVsbGluZyBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51
SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlw
aW5nIiwgIkNoZWNrIHNwZWxsaW5nIHdoaWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
R3JhbW1hcldpdGhTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNr
IGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJGb250cyIs
ICJGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkJvbGQiLCAiQm9sZCBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51
SXRlbVRhZ0l0YWxpYygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiSXRhbGljIiwgIkl0YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGlu
ZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk91dGxp
bmUiLCAiT3V0bGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEaXJl
Y3Rpb24iLCAiV3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVj
dGlvbk1lbnUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlRleHQgRGlyZWN0aW9uIiwgIlRleHQgZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51
SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVj
dGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQg
dG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmlnaHQgdG8gTGVmdCIsICJS
aWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkluc3BlY3QiLCAi
SW5zcGVjdCBFbGVtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyByZWNlbnQg
c2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVu
IGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2
ZSBiZWVuIHBlcmZvcm1lZCIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnNl
YXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlY2VudCBzZWFyY2hlcyIsICJsYWJlbCBmb3Ig
Zmlyc3QgaXRlbSBpbiB0aGUgbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUg
c2VhcmNoIGZpZWxkIGltYWdlLCB1c2VkIGFzIGVtYmVkZGVkIG1lbnUgdGl0bGUiKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hl
c1RleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNsZWFyIHJlY2VudCBzZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJj
aGVzIG1lbnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OkFYV2ViQXJlYVRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OkFYTGlua1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0
cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTGlzdE1hcmtlclRl
eHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpBWEhlYWRpbmdUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
OjpBWERlZmluaXRpb25MaXN0VGVybVRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFY
RGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
QVhCdXR0b25BY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFJhZGlvQnV0
dG9uQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3Ry
aW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhUZXh0RmllbGRBY3Rp
b25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWENoZWNrZWRDaGVja0JveEFjdGlv
blZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rp
b25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWE1lbnVMaXN0QWN0aW9uVmVyYigp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhMaW5rQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0
ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyYXNoZWRQbHVnaW5UZXh0KCkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0OjptdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OnVua25vd25GaWxlU2l6ZVRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVua25vd24iLCAiVW5rbm93biBmaWxl
c2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICIlMSAoJTJ4JTMgcGl4ZWxzKSIsICJUaXRsZSBzdHJpbmcgZm9yIGltYWdlcyIp
LmFyZyhmaWxlbmFtZSkuYXJnKHNpemUud2lkdGgoKSkuYXJnKHNpemUuaGVpZ2h0KCkpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6Om1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRl
eHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkxvYWRpbmcuLi4iLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHRo
ZSBtZWRpYSBpcyBsb2FkaW5nIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
bWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAiTWVk
aWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNh
c3QiKTsKLX0KLQotI2lmIEVOQUJMRShWSURFTykKLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFt
ZSkKLXsKLSAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQXVkaW8gRWxlbWVudCIsICJN
ZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50
IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiVmlkZW8gRWxlbWVudCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAo
bmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbm11dGUgQnV0dG9uIiwg
Ik1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9u
IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiUGxheSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5h
bWUgPT0gIlBhdXNlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQotICAgICAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTbGlkZXIiLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2xpZGVyIFRo
dW1iIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJSZXdp
bmRCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJSZXdpbmQgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwot
ICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV0dXJuIHRvIFJlYWwt
dGltZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVsYXBzZWQgVGltZSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZW1h
aW5pbmcgVGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9
PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlN0YXR1cyBEaXNwbGF5IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRnVsbHNjcmVlbiBC
dXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNl
ZWtGb3J3YXJkQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBGb3J3YXJkIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQotICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEJhY2sg
QnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotCi0gICAgcmV0dXJuIFN0cmlu
ZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUg
PT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkF1ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0
YXR1cyBkaXNwbGF5IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1l
ID09ICJWaWRlb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBz
dGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFt
ZSA9PSAiTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk11dGUgYXVkaW8gdHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbm11dGUgYXVkaW8g
dHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJQ
bGF5QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiQmVnaW4gcGxheWJhY2siLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
Ci0gICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UgcGxheWJhY2siLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRp
bWUgc2NydWJiZXIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIlNsaWRlclRodW1iIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiTW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV3aW5k
IG1vdmllIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFsLXRp
bWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJl
bnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkN1cnJlbnQgbW92aWUgdGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQotICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZW1haW5p
bmcgbW92aWUgdGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFt
ZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkN1cnJlbnQgbW92aWUgc3RhdHVzIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxh
eSBtb3ZpZSBpbiBmdWxsLXNjcmVlbiBtb2RlIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIp
OwotICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBiYWNr
IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTZWVrQmFj
a0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBmb3J3YXJkIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhVGltZURlc2Ny
aXB0aW9uKGZsb2F0IHRpbWUpCi17Ci0gICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZpbml0
ZSB0aW1lIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKTsKLQotICAgIGludCBzZWNvbmRzID0g
KGludClmYWJzZih0aW1lKTsKLSAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0
KTsKLSAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOwotICAgIGludCBtaW51dGVz
ID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKLSAgICBzZWNvbmRzICU9IDYwOwotCi0gICAgaWYgKGRh
eXMpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIiUxIGRheXMgJTIgaG91cnMgJTMgbWludXRlcyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRpbWUg
ZGVzY3JpcHRpb24iKS5hcmcoZGF5cykuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNlY29u
ZHMpOwotCi0gICAgaWYgKGhvdXJzKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBob3VycyAlMiBtaW51dGVzICUzIHNlY29uZHMiLCAi
TWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNv
bmRzKTsKLQotICAgIGlmIChtaW51dGVzKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBtaW51dGVzICUyIHNlY29uZHMiLCAiTWVkaWEg
dGltZSBkZXNjcmlwdGlvbiIpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7Ci0KLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBzZWNvbmRzIiwg
Ik1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoc2Vjb25kcyk7Ci19Ci0KLSNlbHNlIC8vIEVO
QUJMRShWSURFTykKLS8vIEZJWE1FOiAjaWYgRU5BQkxFKFZJREVPKSBzaG91bGQgYmUgaW4gdGhl
IGJhc2UgY2xhc3MKLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICByZXR1cm4g
U3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVk
aWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICByZXR1
cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7
Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pCi0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92
ZXJmbG93VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5n
KCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBT
dHJpbmcoKTsKLX0KLQotCiAvLyBWaXNpdGVkTGlua1N0cmF0ZWd5CiAKIGJvb2wgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmlzTGlua1Zpc2l0ZWQoUGFnZSogcGFnZSwgTGlua0hhc2ggaGFzaCwgY29u
c3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVVUkwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2ll
c1F0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2ll
c1F0LmgKaW5kZXggNTA0OTE5ZTM4M2ZjOTQ3OTIyYzg0YjI3NWZhNGVkMTBmMjhhMWZmNi4uOGJj
ZWM1NjIyMWQ1MTM3OTJlOTAzYTQ4MDgzNGM1NDhiYTA1NDY3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBJTmRUIC0gSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCkBAIC0yOSw3ICsyOSw2IEBACiAj
ZGVmaW5lIFBsYXRmb3JtU3RyYXRlZ2llc1F0X2gKIAogI2luY2x1ZGUgPENvb2tpZXNTdHJhdGVn
eS5oPgotI2luY2x1ZGUgPExvY2FsaXphdGlvblN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8UGxhdGZv
cm1TdHJhdGVnaWVzLmg+CiAjaW5jbHVkZSA8UGx1Z2luU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxW
aXNpdGVkTGlua1N0cmF0ZWd5Lmg+CkBAIC0zOCw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFBhZ2U7CiB9CiAKLWNsYXNzIFBsYXRmb3JtU3RyYXRlZ2llc1F0IDogcHVibGlj
IFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBXZWJDb3JlOjpDb29raWVzU3Ry
YXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6
TG9jYWxpemF0aW9uU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVn
eSB7CitjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9y
bVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5LCBwcml2YXRlIFdl
YkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRl
Z3kgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKIApAQCAtNDgsNyAr
NDcsNiBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAg
IHZpcnR1YWwgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3ko
KTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJh
dGVneSgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6TG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNyZWF0
ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpWaXNpdGVkTGlu
a1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCk7CiAgICAgCiAgICAgLy8gV2Vi
Q29yZTo6Q29va2llc1N0cmF0ZWd5CkBAIC01OCwxMDEgKzU2LDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2lu
SW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7
CiAKLSAgICAvLyBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneQotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJj
aGFibGVJbmRleEludHJvZHVjdGlvbigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc3VibWl0
QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9u
Q2hvb3NlRmlsZUxhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uQ2hv
b3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0
dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1
dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBkZWZh
dWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZElt
YWdlVG9EaXNrKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDdXQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1Bhc3RlKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdT
ZWxlY3RBbGwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05v
R3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdJZ25vcmVTcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTGVhcm5TcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNo
b3cpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZ1doaWxlVHlwaW5nKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3V0bGluZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5O
ZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2Ny
ZWVuKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBs
YXkoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1
c2UoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNU
ZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNU
ZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFy
Y2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYV2ViQXJlYVRleHQoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTGlua1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIEFYTGlzdE1hcmtlclRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYSW1hZ2VN
YXBUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWEhlYWRpbmdUZXh0KCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBBWERlZmluaXRpb25MaXN0VGVybVRleHQoKTsKLSAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWENo
ZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYVW5j
aGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWE1l
bnVMaXN0QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhNZW51TGlzdFBv
cHVwQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhMaW5rQWN0aW9uVmVy
YigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBXVEY6OlN0cmluZyYgZmlsZW5hbWUsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG1lZGlhRWxl
bWVudExvYWRpbmdTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG1lZGlhRWxl
bWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxv
Y2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4
dChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQo
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNo
VGV4dCgpOwotCiAgICAgLy8gV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneQogICAgIHZpcnR1
YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCwg
Y29uc3QgV2ViQ29yZTo6S1VSTCYgYmFzZVVSTCwgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGF0
dHJpYnV0ZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZFZpc2l0ZWRMaW5rKFdlYkNvcmU6OlBh
Z2UqLCBXZWJDb3JlOjpMaW5rSGFzaCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmggYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKaW5kZXggOTJk
MzdkYzY1MzYyYTk1NWU2MWMwOWE1ZmIzNjFlY2ViNWZjZTNhMC4uNDdiMGUzNDI1YzdjNGI2NmNh
Nzg0N2Y4MmU3NThiNmMxZTIzMzIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaApAQCAtMjYs
NyArMjYsNiBAQAogI2RlZmluZSBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRV9oCiAKICNpbmNsdWRl
ICJDb29raWVzU3RyYXRlZ3kuaCIKLSNpbmNsdWRlICJMb2NhbGl6YXRpb25TdHJhdGVneS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBsdWdpblN0cmF0ZWd5
LmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdHJhdGVneS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126665</attachid>
            <date>2012-02-11 19:09:28 -0800</date>
            <delta_ts>2012-02-14 12:51:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120211190927.patch</filename>
            <type>text/plain</type>
            <size>211087</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMwZmVmNjlhMDYxMmYz
MTk2Zjk1ZTA0ODQ1M2I1NjkyNTk4MjM4NC4uMGRlNzBjM2I5Mzg0YzU1MzRmYmU5YTZiMDUyMWQ0
MzQwNzdmNDc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3MiBAQAorMjAxMi0wMi0xMSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIExvY2FsaXphdGlvblN0cmF0ZWd5IGFuZCB1bmlmeSB0
aGUgbG9jYWxpemF0aW9uIGJlaGluZAorICAgICAgICBMb2NhbGl6ZWRTdHJpbmdzLmggYW5kIExv
Y2FsaXplZFN0cmluZ3MuY3BwLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjp0
cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjppbnB1
dEVsZW1lbnRBbHRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxl
QnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVC
dXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25O
b0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0RGV0YWlsc1N1
bW1hcnlUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBi
b2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5l
d1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZElt
YWdlVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFn
ZVRvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29CYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1JlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdD
dXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoV2ViKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEluRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTGluayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25v
cmVHcmFtbWFyKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5n
TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQ
YW5lbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1t
YXJXaXRoU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRm9u
dE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ1VuZGVybGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPdXRsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0eWxl
cyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZyk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0TGlua3MpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4
dFJlcGxhY2VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
Zm9ybWF0aW9uc01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWFr
ZVVwcGVyQ2FzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93
ZXJDYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlu
a1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVy
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhX
ZWJBcmVhVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFYTGlzdE1hcmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZU1hcFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhIZWFkaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWERlZmluaXRpb25MaXN0VGVybVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0
aW9uTGlzdERlZmluaXRpb25UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYQVJJQUNvbnRlbnRH
cm91cFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYVGV4dEZpZWxkQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVj
a0JveEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFj
dGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaW5rQWN0aW9uVmVyYik6CisgICAgICAg
IChXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYTWVudUxpc3RBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6Om1pc3NpbmdQbHVnaW5U
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6Om11bHRpcGxlRmlsZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93
bkZpbGVTaXplVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1cGxvYWRGaWxlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjphbGxGaWxlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRJblBE
RlBsdWdpbk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6cGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW01MTIpOgorICAgICAgICAoV2Vi
Q29yZTo6a2V5Z2VuTWVudUl0ZW0xMDI0KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbk1lbnVJ
dGVtMjA0OCk6CisgICAgICAgIChXZWJDb3JlOjprZXlnZW5LZXljaGFpbkl0ZW1OYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6Omh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKToKKyAgICAgICAgKFdlYkNv
cmU6OmltYWdlVGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TG9hZGluZ1N0
YXRlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3Rh
dGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhl
bHBUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNr
Ym94VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2lu
Z0ZvckZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVN
aXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVZhbHVlTWlzc2luZ0ZvclJhZGlvVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclNlbGVjdFRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNo
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXM6OlBsYXRmb3JtU3RyYXRlZ2llcyk6CisgICAg
ICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Mb2NhbGl6
ZWRTdHJpbmdzRWZsLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5n
c0d0ay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0
ZWdpZXNRdC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmlucHV0
RWxlbWVudEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRCdXR0b25EZWZhdWx0TGFi
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAgIChXZWJD
b3JlOjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVC
dXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1
dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5v
RmlsZXNTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHREZXRhaWxzU3Vt
bWFyeVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJ
bk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9h
ZExpbmtUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxp
bmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVu
SW1hZ2VJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdE
b3dubG9hZEltYWdlVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcHlJbWFnZVRvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0NvcHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
R29CYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdDdXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1NwZWxsaW5nTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdTaG93U3BlbGxpbmdQYW5lbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdDaGVja1NwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrU3BlbGxpbmdXaGlsZVR5cGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnRm9udE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51Tm9S
ZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVudVJlY2VudFNl
YXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFy
Y2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhXZWJBcmVhVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWExpbmtUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlzdE1hcmtlclRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZU1hcFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhIZWFkaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0VGVybVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3Jl
OjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFRleHRGaWVs
ZEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25W
ZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYTWVudUxpc3RBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaW5r
QWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjptaXNzaW5nUGx1Z2luVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpjcmFzaGVkUGx1Z2luVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjptdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnVua25vd25GaWxlU2l6ZVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6aW1hZ2VUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpt
ZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhRWxl
bWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVk
TWVkaWFDb250cm9sRWxlbWVudFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRN
ZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRp
b25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmlsZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JNdWx0aXBsZUZpbGVUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFp
bFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hG
b3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0
ZXBNaXNtYXRjaFRleHQpOgorCiAyMDEyLTAyLTExICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJh
Y2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHNwZWNpYWwgX19wcm90b19fIHByb3Bl
cnR5IHRvIE9iamVjdC5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMTQ4YTI3MzY5ODBlMmIy
ODllZjViMGEyODQ1N2UwZjllY2ZhOGYxZS4uZmViMzhhNDY0MjdiNDEzYWE0MWQyOTQyMGI5NWI3
ZmYxZjg3NjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wMi0xMSAg
QmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJp
ZCBvZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgbG9jYWxpemF0aW9uIGNvZGUgZnJvbSBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKKyAgICAgICAgdG8gTG9jYWxpemVkU3RyaW5nc1F0LmNwcC4K
KworICAgICAgICBHZXQgcmlkIG9mIExvY2FsaXphdGlvblN0cmF0ZWd5IGZyb20gUGxhdGZvcm1T
dHJhdGVnaWVzUXQKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2ll
c1F0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5o
OgorICAgICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzUXQpOgorCiAyMDEyLTAyLTA5ICBTaW1vbiBI
YXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBj
b21waWxhdGlvbiB3aXRoIG5ld2VyIFF0NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZDJhN2U2
NDdiMmUwYWUwOWI3Zjc2Y2MwNjcyNjc4NTkzZjkyMTMxLi43ZDEzNWNmZjZlYmQ1ZmVkZWIzN2Mw
YWE3ZDI3MWMyMDVlNzRlZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTAyLTExICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBHZXQgcmlkIG9mIHRoZSBMb2NhbGl6YXRpb25TdHJhdGVneQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYSB1c2VsZXNzICNpbmNs
dWRlIG9mIExvY2FsaXphdGlvblN0cmF0ZWd5LmguCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oOgorCiAyMDExLTEyLTE5ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSBQbGF0Zm9ybUV2ZW50IGNsZWFudXAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggOGMzMTVkNjI3MzE3ODA3MDI5ZjUzNDgwYjU3MDU2ZDFjM2Vm
MTIzYi4uM2FhNzhjMzlkYTBiMzU0ZDg1YjBiYjY1YjE0YWM3ZWQ3MWFmN2M3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTEwNTQsNyArMTA1NCw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBwbGF0Zm9ybS9Db250ZW50VHlwZS5jcHAKICAgICBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGll
ci5jcHAKICAgICBwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAKLSAgICBwbGF0Zm9ybS9EZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCiAgICAgcGxhdGZvcm0vRHJhZ0RhdGEuY3BwCiAg
ICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMjEwODQ2MmUxY2Y1YTVkNGZhM2EzMzYx
ODY5ODZjNGI2NGEwZDM2NS4uZDcxM2JjNDZiZjEwMjQ1MDQwMmZiNjI5MzU2OTI2OTZmZmRlOTRk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yODE5LDggKzI4MTksNiBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EcmFnRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRh
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggMTQzZjc4Y2VkNzBjYWY5ZTU1YWYyMWIwZmMyNTI3NzM1MTc1MDkyNC4uMWUxMDU1MWEz
ODMzYzQ0NzUwZjZiNmI3NDVhMWE5MjNiZTliNWJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMDM1LDcg
KzEwMzUsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9Db250ZW50VHlwZS5jcHAgXAog
ICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBcCiAgICAgcGxhdGZvcm0vRGF0ZUNv
bXBvbmVudHMuY3BwIFwKLSAgICBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ku
Y3BwIFwKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAgXAogICAgIHBsYXRmb3JtL0RyYWdJbWFn
ZS5jcHAgXAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcCBcCkBAIC0xMTY5LDcgKzExNjgs
NiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9VVUlELmNwcCBcCiAgICAgcGxhdGZvcm0v
V2lkZ2V0LmNwcCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBcCi0gICAg
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgXAogICAgIHBsdWdpbnMvSUZyYW1lU2hpbVN1
cHBvcnQuY3BwIFwKICAgICBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcCBcCiAgICAgcGx1Z2lu
cy9QbHVnaW5EZWJ1Zy5jcHAgXApAQCAtMjA5MCw3ICsyMDg4LDYgQEAgSEVBREVSUyArPSBcCiAg
ICAgcGxhdGZvcm0vQ29udGV4dE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaCBcCiAgICAgcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaCBcCi0gICAgcGxhdGZvcm0vRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggXAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmggXAog
ICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5oIFwKICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIFwK
QEAgLTI4MzUsNiArMjgzMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3F0L1NvdW5k
UXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9Mb2dnaW5nUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9x
dC9MYW5ndWFnZVF0LmNwcCBcCisgICAgcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNw
cCBcCiAgICAgcGxhdGZvcm0vcXQvVGVtcG9yYXJ5TGlua1N0dWJzUXQuY3BwIFwKICAgICBwbGF0
Zm9ybS90ZXh0L3F0L1RleHRCb3VuZGFyaWVzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCAzNDk4ZGZkZWNhNDhiZjAyZjZlYWRmNDc3NDczNzVmNjJkMWQ2NjAyLi45MDQ2ZjhkY2Y0
MDE5YzE5MTMyYzBkZjZhZmRlODlhZTg0MjBjOTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
NTQ4LDcgKzU0OCw2IEBAIF9fWk43V2ViQ29yZTE3UmVndWxhckV4cHJlc3Npb25EMUV2CiBfX1pO
N1dlYkNvcmUxN2NhY2hlRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOM0pT
QzlTdHJ1Y3R1cmVFUEtOUzJfOUNsYXNzSW5mb0UKIF9fWk43V2ViQ29yZTE3b3BlblRlbXBvcmFy
eUZpbGVFUktOM1dURjZTdHJpbmdFUmkKIF9fWk43V2ViQ29yZTE4SFRNTENvbnRlbnRFbGVtZW50
NmNyZWF0ZUVQTlNfOERvY3VtZW50RQotX19aTjdXZWJDb3JlMThQbGF0Zm9ybVN0cmF0ZWdpZXMy
NmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKIF9fWk43V2ViQ29yZTE4U2VhcmNoUG9wdXBN
ZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3JlMThpc1N0YXJ0T2ZQ
YXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkVOU18yN0VkaXRpbmdCb3VuZGFyeUNyb3Nz
aW5nUnVsZUUKIF9fWk43V2ViQ29yZTE4cGx1Z2luU2NyaXB0T2JqZWN0RVBOM0pTQzlFeGVjU3Rh
dGVFUE5TXzEzSlNIVE1MRWxlbWVudEUKQEAgLTE0NzcsNyArMTQ3Niw2IEBAIF9fWk5LN1dlYkNv
cmU5VHJlZVNjb3BlMTRnZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pU
Vk43V2ViQ29yZTEyQ2hyb21lQ2xpZW50RQogX19aVFZON1dlYkNvcmUxNkljb25EYXRhYmFzZUJh
c2VFCiBfX1pUVk43V2ViQ29yZTE3RnJhbWVMb2FkZXJDbGllbnRFCi1fX1pUVk43V2ViQ29yZTE4
UGxhdGZvcm1TdHJhdGVnaWVzRQogX19aVFZON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RX
cml0ZXJFCiBfX1pUVk43V2ViQ29yZTI4SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDhTZXR0
aW5nc0UKIF9maWxlbmFtZUJ5Rml4aW5nSWxsZWdhbENoYXJhY3RlcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCA1ZmU4MDE4M2ZiMzI0NjQ1ZWFjMzlkNjY5Y2RhYjk0MmVjMjRjNmFmLi4yMjY5MWZiYzY2
ZDg0ODczNjQwNDE2MGNmOWU4MDAzMmNiMTJiYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNTEs
NyArMjUxLDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vQ3Vyc29yLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Rh
dGVDb21wb25lbnRzLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EcmFnRGF0YS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9EcmFnSW1hZ2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmls
ZUNob29zZXIuaCcsCkBAIC0yNjcsNyArMjY2LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9M
ZW5ndGhCb3guaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTGVuZ3RoU2l6ZS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9MaW5rSGFzaC5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2Nh
bGl6YXRpb25TdHJhdGVneS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xvZ2dpbmcuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgnLApAQCAtMjczMSw3ICsyNzI5LDYgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9DdXJzb3IuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EYXRlQ29tcG9u
ZW50cy5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdEYXRhLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRXZl
bnRMb29wLmgnLApAQCAtMjc1NSw3ICsyNzUyLDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9M
YW5ndWFnZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xlbmd0aC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL0xpbmtIYXNoLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xvZ2dpbmcuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpp
bmRleCA5OWFjNGQyZDljYzY3YTViYWE4ZDMyMzRkOThlOTZjNGMzNGQ3YzQ3Li5kNWJlMzlmNDU4
N2Y1ZmRjZmU0NWUzZmY4MWVjYTRmZjhhY2I2MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTUz
MjksOSArNTMyOSw2IEBAIF9fWk5LN1dlYkNvcmUxOUFjY2Vzc2liaWxpdHlPYmplY3QxNWlzTWVk
aWFUaW1lbGluZUV2CiAtW0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVEZXNjcmlwdGlv
bl0KIF9fWk43V2ViQ29yZTEzQVhIZWFkaW5nVGV4dEV2CiBfX1pON1dlYkNvcmUyMWhhc1BsYXRm
b3JtU3RyYXRlZ2llc0V2Ci1fX1pON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llczI2Y3JlYXRl
TG9jYWxpemF0aW9uU3RyYXRlZ3lFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3lDMUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEz
QVhIZWFkaW5nVGV4dEV2CiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
NHNpemVFdgogX19aTks3V2ViQ29yZTI1QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDExZWxlbWVu
dFJlY3RFdgogX19aTks3V2ViQ29yZTE5QWNjZXNzaWJpbGl0eU9iamVjdDEzaXNSYWRpb0J1dHRv
bkV2CkBAIC02NjgwLDcgKzY2NzcsNiBAQCBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRlcjI1
aXNMb2FkaW5nTXVsdGlwYXJ0Q29udGVudEV2CiBfX1pOSzdXZWJDb3JlNEtVUkwxN2xhc3RQYXRo
Q29tcG9uZW50RXYKIF9fWk43V2ViQ29yZTI0ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzRVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBpbWFnZVRpdGxlRVJLTjNXVEY2U3RyaW5nRVJLTlNf
N0ludFNpemVFCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEwaW1h
Z2VUaXRsZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQogX19aTjdXZWJDb3JlTDIxZm9y
bWF0TG9jYWxpemVkU3RyaW5nRU4zV1RGNlN0cmluZ0V6CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ4
c2V0VGl0bGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ0aGVhZEV2CkBA
IC02NzMwLDcgKzY3MjYsNiBAQCBfX1pON1dlYkNvcmUxNkpTSFRNTFByZUVsZW1lbnQxNWNyZWF0
ZVByb3RvdHlwZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbAogX19aTjdXZWJDb3Jl
MTZKU0hUTUxQcmVFbGVtZW50QzFFUE4zSlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9i
amVjdEVOM1dURjEwUGFzc1JlZlB0cklOU18xNEhUTUxQcmVFbGVtZW50RUVFCiBfX1pON1dlYkNv
cmUxMmNhY2hlV3JhcHBlcklOU18xNEhUTUxQcmVFbGVtZW50RUVFdlBOU18xNURPTVdyYXBwZXJX
b3JsZEVQVF9QTlNfMTJKU0RPTVdyYXBwZXJFCiBfX1pON1dlYkNvcmUxM0FYV2ViQXJlYVRleHRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYV2ViQXJlYVRl
eHRFdgogX19aTjdXZWJDb3JlMTBSZW5kZXJWaWV3MTNhYnNvbHV0ZVF1YWRzRVJOM1dURjZWZWN0
b3JJTlNfOUZsb2F0UXVhZEVMbTBFRUUKIF9fWk43V2ViQ29yZTI1QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDE2Z2V0RG9jdW1lbnRMaW5rc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzE5
QWNjZXNzaWJpbGl0eU9iamVjdEVFRUxtMEVFRQogX19aTjdXZWJDb3JlOERvY3VtZW50NWxpbmtz
RXYKQEAgLTY3NDAsNyArNjczNSw2IEBAIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QxMWxheW91dENvdW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QyNGVzdGltYXRlZExvYWRpbmdQcm9ncmVzc0V2CiBfX1pOSzdXZWJDb3JlMTVQcm9n
cmVzc1RyYWNrZXIxN2VzdGltYXRlZFByb2dyZXNzRXYKIF9fWk43V2ViQ29yZTEwQVhMaW5rVGV4
dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTEwQVhMaW5rVGV4
dEV2CiBfX1pON1dlYkNvcmUxMlJlbmRlcklubGluZTI1Y3VsbGVkSW5saW5lQWJzb2x1dGVSZWN0
c0VQS1MwX1JOM1dURjZWZWN0b3JJTlNfN0ludFJlY3RFTG0wRUVFUktOU183SW50U2l6ZUUKIF9f
Wk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxOWludGVybmFsTGlua0VsZW1l
bnRFdgogX19aTks3V2ViQ29yZTE3SFRNTEFuY2hvckVsZW1lbnQ0aHJlZkV2CkBAIC02ODkxLDkg
KzY4ODUsNyBAQCBfX1pOSzdXZWJDb3JlMTNIVE1MSFJFbGVtZW50MjNjYW5Db250YWluUmFuZ2VF
bmRQb2ludEV2CiBfX1pOSzdXZWJDb3JlMTdBY2Nlc3NpYmlsaXR5TGlzdDEzaXNPcmRlcmVkTGlz
dEV2CiBfX1pOSzdXZWJDb3JlMTdBY2Nlc3NpYmlsaXR5TGlzdDE2aXNEZWZpbml0aW9uTGlzdEV2
CiBfX1pON1dlYkNvcmUyNEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dEV2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0RXYK
IF9fWk43V2ViQ29yZTMwQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzBBWERlZmluaXRpb25MaXN0RGVmaW5p
dGlvblRleHRFdgogX19aTjdXZWJDb3JlMTlIVE1MRmllbGRTZXRFbGVtZW50RDBFdgogX19aTjdX
ZWJDb3JlMTdIVE1MTGVnZW5kRWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZUwxNnZpZGVvQ29uc3Ry
dWN0b3JFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVs
ZW1lbnRFYgpAQCAtNzE4Miw3ICs3MTc0LDYgQEAgX19aVGhuMTIwX043V2ViQ29yZTE2SFRNTE1l
ZGlhRWxlbWVudDMwbWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkRVBOU18xMU1lZGkKIF9f
Wk43V2ViQ29yZTExTWVkaWFQbGF5ZXIxMm5ldHdvcmtTdGF0ZUV2CiBfX1pON1dlYkNvcmUxNkhU
TUxNZWRpYUVsZW1lbnQxNXNldE5ldHdvcmtTdGF0ZUVOU18xMU1lZGlhUGxheWVyMTJOZXR3b3Jr
U3RhdGVFCiBfX1pON1dlYkNvcmUyOG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHRFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOG1lZGlhRWxlbWVudExvYWRp
bmdTdGF0ZVRleHRFdgogX19aTjdXZWJDb3JlMzRNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDMTljcmVhdGVBVkFzc2V0Rm9yVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MzBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24xN3NldERlbGF5Q2FsbGJhY2tzRWIKIF9f
WkwzOGluaXRBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25zS2V5dgpAQCAtNzQxNyw3ICs3
NDA4LDYgQEAgX19aTks3V2ViQ29yZTM1QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWlu
ZXI5cm9sZVZhbHVlRXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xz
Q29udGFpbmVyMjRhY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25FdgogX19aTks3V2ViQ29yZTM1QWNj
ZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIxNWVsZW1lbnRUeXBlTmFtZUV2CiBfX1pO
N1dlYkNvcmUzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmdFUktOM1dURjZTdHJp
bmdFCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM0bG9jYWxpemVk
TWVkaWFDb250cm9sRWxlbWVudFN0cmluZ0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1
RHluYW1pY05vZGVMaXN0MTVpbnZhbGlkYXRlQ2FjaGVFdgogX19aTks3V2ViQ29yZTI0TWVkaWFD
b250cm9sSW5wdXRFbGVtZW50MjFpc01lZGlhQ29udHJvbEVsZW1lbnRFdgogX19aTks3V2ViQ29y
ZTI1QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDIyYWNjZXNzaWJpbGl0eUlzSWdub3JlZEV2CkBA
IC03NTU0LDE0ICs3NTQ0LDEyIEBAIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wxNHN0eWxlRGlkQ2hhbmdlRU5TXzE1U3R5bGVEaWZmZXJlbmNlRVBLTlNfCiBfX1pON1dlYkNv
cmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTd1cGRhdGVGcm9tRWxlbWVudEV2CiBfX1pON1dl
YkNvcmUxOFNoYWRvd0lucHV0RWxlbWVudDZjcmVhdGVFUE5TXzExSFRNTEVsZW1lbnRFCiBfX1pO
N1dlYkNvcmUyNWZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWxFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNWZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWxFdgogX19a
TjdXZWJDb3JlOUlucHV0VHlwZTEydmFsdWVDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTIySFRNTEZv
cm1Db250cm9sRWxlbWVudDExc2V0RGlzYWJsZWRFYgogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxl
VXBsb2FkQ29udHJvbDI5Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHNFdgogX19aTks3V2Vi
Q29yZTEzRmlsZUlucHV0VHlwZTEyaXNGaWxlVXBsb2FkRXYKIF9fWk43V2ViQ29yZTIzUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wxMXBhaW50T2JqZWN0RVJOU185UGFpbnRJbmZvRWlpCiBfX1pON1dl
YkNvcmUyOWZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjlmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbEV2
CiBfX1pON1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RFYgog
X19aTjdXZWJDb3JlMTFSZW5kZXJCbG9jazEzYWJzb2x1dGVSZWN0c0VSTjNXVEY2VmVjdG9ySU5T
XzdJbnRSZWN0RUxtMEVFRWlpCiBfX1pUaG44X043V2ViQ29yZTE5SFRNTFRleHRBcmVhRWxlbWVu
dEQwRXYKQEAgLTc4MTcsMTAgKzc4MDUsNyBAQCBfX1pOM1dURjlIYXNoVGFibGVJTlNfNlN0cmlu
Z0VTdDRwYWlySVMxX1BLTjdXZWJDb3JlMjFFZGl0b3JJbnRlcm5hbENvbW1hbmRFRU5TXwogX19a
TjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIxRWRpdG9y
SW50ZXJuYWxDb21tYW5kRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTN19FRU5TXzE1Q2FzZUZv
bGRpbmdIYXNoRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSVMxX0VFTlNDX0lT
Nl9FRUVFU0RfRTZsb29rdXBJUzFfTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySVMxX1M3X1NB
X0VFRUVQUzdfUktUXwogX19aTjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9Q
S043V2ViQ29yZTIxRWRpdG9ySW50ZXJuYWxDb21tYW5kRUVOU18xOFBhaXJGaXJzdEV4dHJhY3Rv
cklTN19FRU5TXzE1Q2FzZUZvbGRpbmdIYXNoRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNo
VHJhaXRzSVMxX0VFTlNDX0lTNl9FRUVFU0RfRTZyZWhhc2hFaQogX19aTjdXZWJDb3JlMzVjb250
ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uc0ViCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTZzaGFyZWRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zRWIKIF9f
Wk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWxFYgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1No
b3dTcGVsbGluZ1BhbmVsRWIKIF9fWk43V2ViQ29yZUwyMmNlbnRlclRydW5jYXRlVG9CdWZmZXJF
UktOM1dURjZTdHJpbmdFampQdAogX19aTjdXZWJDb3JlMTFpc1RleHRCcmVha0VQTlNfMTdUZXh0
QnJlYWtJdGVyYXRvckVpCiBfX1pON1dlYkNvcmUxNVNRTGl0ZVN0YXRlbWVudDhiaW5kTnVsbEVp
CkBAIC0xMTk1MCw3ICsxMTkzNSw2IEBAIF9fWk43V2ViQ29yZTIyanNIVE1MQ29sbGVjdGlvbkxl
bmd0aEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8xMElkZW50CiBfX1pOSzdX
ZWJDb3JlMTdIVE1MT2JqZWN0RWxlbWVudDE4Y29udGFpbnNKYXZhQXBwbGV0RXYKIF9fWk43V2Vi
Q29yZTIwUmVuZGVyRW1iZWRkZWRPYmplY3QzMHNldFNob3dzTWlzc2luZ1BsdWdpbkluZGljYXRv
ckV2CiBfX1pON1dlYkNvcmUxN21pc3NpbmdQbHVnaW5UZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MTdtaXNzaW5nUGx1Z2luVGV4dEV2CiBfX1pON1dlYkNv
cmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MTNwYWludFJlcGxhY2VkRVJOU185UGFpbnRJbmZvRWlp
CiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MjZnZXRSZXBsYWNlbWVudFRleHRH
ZW9tZXRyeUVpaVJOU185RmxvYXRSZWN0RVJOU180UGF0aEVTMl9STlNfNEZvbnRFUk5TXzdUZXh0
UnVuRVJmCiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU185RmxvYXRSZWN0
RVJLTlNfOUZsb2F0U2l6ZUUKQEAgLTEyMzcwLDcgKzEyMzU0LDYgQEAgX19aTjdXZWJDb3JlOUlu
cHV0VHlwZTE5YWx0QXR0cmlidXRlQ2hhbmdlZEV2CiBfX1pOM1dURjZTdHJpbmcxMG1ha2VTZWN1
cmVFdAogX19aTjdXZWJDb3JlOUlucHV0VHlwZTI3c2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRl
RXYKIF9fWk43V2ViQ29yZTE5aW5wdXRFbGVtZW50QWx0VGV4dEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE5aW5wdXRFbGVtZW50QWx0VGV4dEV2CiBfX1pOSzdX
ZWJDb3JlMTdSZW5kZXJUZXh0Q29udHJvbDM2cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3Bh
Z2F0aW9uRXYKIF9fWk43V2ViQ29yZTMwanNIVE1MSW5wdXRFbGVtZW50RGVmYXVsdFZhbHVlRVBO
M0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2Vi
Q29yZTMyanNIVE1MSW5wdXRFbGVtZW50RGVmYXVsdENoZWNrZWRFUE4zSlNDOUV4ZWNTdGF0ZUVO
UzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTUwODYsMTEgKzE1MDY5LDggQEAg
X19aTjdXZWJDb3JlMTdIVE1MS2V5Z2VuRWxlbWVudDZjcmVhdGVFUktOU18xM1F1YWxpZmllZE5h
bWVFUE5TXzhEb2N1bWVudEVQTlNfMTUKIF9fWk43V2ViQ29yZTE3SFRNTEtleWdlbkVsZW1lbnRD
MkVSS05TXzEzUXVhbGlmaWVkTmFtZUVQTlNfOERvY3VtZW50RVBOU18xNUhUTUxGb3JtRWxlbWVu
dEUKIF9fWk43V2ViQ29yZTIwZ2V0U3VwcG9ydGVkS2V5U2l6ZXNFUk4zV1RGNlZlY3RvcklOUzBf
NlN0cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MThrZXlnZW5NZW51SXRlbTIwNDhF
dgogX19aTjdXZWJDb3JlMThrZXlnZW5NZW51SXRlbTEwMjRFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxOGtleWdlbk1lbnVJdGVtMTAyNEV2CiBfX1pON1dlYkNv
cmUxN2tleWdlbk1lbnVJdGVtNTEyRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MTdrZXlnZW5NZW51SXRlbTUxMkV2CiBfX1pON1dlYkNvcmUxN0hUTUxTZWxlY3RF
bGVtZW50QzJFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9y
bUVsZW1lbnRFCiBfX1pON1dlYkNvcmUxN0hUTUxPcHRpb25FbGVtZW50NmNyZWF0ZUVQTlNfOERv
Y3VtZW50RVBOU18xNUhUTUxGb3JtRWxlbWVudEUKIF9fWk43V2ViQ29yZTEzU2VsZWN0RWxlbWVu
dDEzZGVzZWxlY3RJdGVtc0VSTlNfMTdTZWxlY3RFbGVtZW50RGF0YUVQTlNfN0VsZW1lbnRFUzRf
CkBAIC0xNTU3MSw2MCArMTU1NTEsMzQgQEAgX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudUMxRXYK
IF9fWk43V2ViQ29yZTExQ29udGV4dE1lbnVDMkV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51
Q29udHJvbGxlcjhwb3B1bGF0ZUV2CiBfX1pON1dlYkNvcmUyNmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjZjb250
ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0V2CiBfX1pON1dlYkNvcmUxNUNvbnRleHRNZW51SXRlbUMx
RU5TXzE5Q29udGV4dE1lbnVJdGVtVHlwZUVOU18xN0NvbnRleHRNZW51QWN0aW9uRVJLTjNXVEY2
U3RyaW5nRVBOU18xMUNvbnRleHRNZW51RQogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1D
MkVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250ZXh0TWVudUFjdGlvbkVSS04zV1RG
NlN0cmluZ0VQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2ViQ29yZUwzM2NyZWF0ZVBsYXRmb3Jt
TWVudUl0ZW1EZXNjcmlwdGlvbkVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVFTlNfMTdDb250ZXh0
TWVudUFjdGlvbkVSS04zV1RGNlN0cmluZ0ViYgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTGlua0luTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Mzdjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93RXYKIF9f
Wk43V2ViQ29yZTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1UYWdE
b3dubG9hZExpbmtUb0Rpc2tFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdDb3B5
TGlua1RvQ2xpcGJvYXJkRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Mzdjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkRXYKIF9fWk43V2ViQ29y
ZTM4Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3dFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFn
ZUluTmV3V2luZG93RXYKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJ
bWFnZVRvRGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3
Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlza0V2CiBfX1pON1dlYkNvcmUzOGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0Ns
aXBib2FyZEV2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRl
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjdjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGVFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Mzdjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzRXYKIF9fWk43V2ViQ29y
ZTMzY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzNjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxv
b3BFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVl
bkV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4Y29udGV4dE1l
bnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzVjb250ZXh0TWVu
dUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHRFdgogX19a
TjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYkV2
CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0NvcHlFdgotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRNZW51SXRlbVRhZ0NvcHlFdgogX19a
TjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2tFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRlbVRhZ0dvQmFja0V2CiBfX1pO
N1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkRXYK
IF9fWk43V2ViQ29yZTIyY29udGV4dE1lbnVJdGVtVGFnU3RvcEV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIyY29udGV4dE1lbnVJdGVtVGFnU3RvcEV2CiBfX1pO
N1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkRXYKIF9fWk43
V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3dFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5GcmFtZUluTmV3V2luZG93RXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJdGVtVGFnTm9H
dWVzc2VzRm91bmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kz
MmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKIF9fWk43V2ViQ29yZTMyY29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nRXYKIF9fWk43
V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVs
bGluZ0V2CiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXJFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRl
bVRhZ0lnbm9yZUdyYW1tYXJFdgogX19aTjdXZWJDb3JlMjFjb250ZXh0TWVudUl0ZW1UYWdDdXRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMWNvbnRleHRNZW51
SXRlbVRhZ0N1dEV2CiBfX1pON1dlYkNvcmUyM2NvbnRleHRNZW51SXRlbVRhZ1Bhc3RlRXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjNjb250ZXh0TWVudUl0ZW1U
YWdQYXN0ZUV2CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTdpc0NvbnRlbnRFZGl0YWJs
ZUV2CiBfX1pOSzdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIyMWNoZWNrT3JFbmFibGVJ
Zk5lZWRlZEVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pOSzdXZWJDb3JlMTVDb250ZXh0TWVu
dUl0ZW00dHlwZUV2CkBAIC0xNTYzOCw3ICsxNTU5Miw2IEBAIF9fWk5LN1dlYkNvcmUxM0hpdFRl
c3RSZXN1bHQxMm1lZGlhRWxlbWVudEV2CiBfX1pON1dlYkNvcmUxNUNvbnRleHRNZW51SXRlbUQx
RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMjFhZGRJbnNwZWN0RWxlbWVu
dEl0ZW1FdgogX19aTjdXZWJDb3JlMzJjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudEV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMyY29udGV4dE1lbnVJ
dGVtVGFnSW5zcGVjdEVsZW1lbnRFdgogX19aTks3V2ViQ29yZTExQ29udGV4dE1lbnUxOXBsYXRm
b3JtRGVzY3JpcHRpb25FdgogX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudTIyc2V0UGxhdGZvcm1E
ZXNjcmlwdGlvbkVQMTROU011dGFibGVBcnJheQogX19aTjdXZWJDb3JlOERvY3VtZW50MjNhY3Rp
dmVDaGFpbk5vZGVEZXRhY2hlZEVQTlNfNE5vZGVFCkBAIC0xNjIxMCwxNiArMTYxNjMsMTEgQEAg
X19aTks3V2ViQ29yZTE4VGV4dENoZWNraW5nSGVscGVyNDBndWVzc2VzRm9yTWlzc3BlbGxlZE9y
VW5ncmFtbWF0aWNhbFJhbmdlRWJSYlMKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNHJl
cGxhY2VkU3RyaW5nRXYKIF9fWk43V2ViQ29yZUwyOXNlbGVjdGlvbkNvbnRhaW5zUG9zc2libGVX
b3JkRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5n
TWVudUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMwY29udGV4
dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250
cm9sbGVyNDBjcmVhdGVBbmRBcHBlbmRTcGVsbGluZ0FuZEdyYW1tYXJTdWJNZW51RVJOU18xNUNv
bnRleHRNZW51SXRlbUUKIF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4
dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlw
aW5nRXYKIF9fWk43V2ViQ29yZTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNw
ZWxsaW5nRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5NDJjb250
ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlNDZj
b250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5RXYKLV9fWk43V2Vi
Q29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5NDZjb250ZXh0TWVudUl0ZW1UYWdDb3Jy
ZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IyMnNwZWxsaW5n
UGFuZWxJc1Nob3dpbmdFdgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW04c2V0VGl0bGVF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yMjRpc0dyYW1tYXJDaGVja2luZ0Vu
YWJsZWRFdgpAQCAtMTYyMjcsNjYgKzE2MTc1LDQxIEBAIF9fWk43V2ViQ29yZTZFZGl0b3IzNmlz
QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmUxNUNvbnRl
eHRNZW51SXRlbTEwc2V0U3ViTWVudUVQTlNfMTFDb250ZXh0TWVudUUKIF9fWk43V2ViQ29yZTEx
Q29udGV4dE1lbnVEMUV2CiBfX1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1
dGlvbnNNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVj
b250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRl
eHRNZW51Q29udHJvbGxlcjM1Y3JlYXRlQW5kQXBwZW5kU3Vic3RpdHV0aW9uc1N1Yk1lbnVFUk5T
XzE1Q29udGV4dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMzJjb250ZXh0TWVudUl0ZW1UYWdTbWFy
dENvcHlQYXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMy
Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgogX19aTjdXZWJDb3JlMjljb250ZXh0
TWVudUl0ZW1UYWdTbWFydFF1b3Rlc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXNFdgogX19aTjdXZWJDb3Jl
Mjljb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXNFdgogX19a
TjdXZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzRXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtz
RXYKIF9fWk43V2ViQ29yZTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50RXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzNjb250ZXh0TWVudUl0ZW1U
YWdUZXh0UmVwbGFjZW1lbnRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjI3c3Vic3RpdHV0aW9uc1Bh
bmVsSXNTaG93aW5nRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzNWlzQXV0b21hdGljUXVvdGVTdWJz
dGl0dXRpb25FbmFibGVkRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzNGlzQXV0b21hdGljRGFzaFN1
YnN0aXR1dGlvbkVuYWJsZWRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjMxaXNBdXRvbWF0aWNMaW5r
RGV0ZWN0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMzNpc0F1dG9tYXRpY1RleHRS
ZXBsYWNlbWVudEVuYWJsZWRFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1UYWdUcmFu
c2Zvcm1hdGlvbnNNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Mzdjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51RXYKIF9fWk43V2ViQ29y
ZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMzdjcmVhdGVBbmRBcHBlbmRUcmFuc2Zvcm1hdGlvbnNT
dWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJ
dGVtVGFnTWFrZVVwcGVyQ2FzZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTMxY29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZUV2CiBfX1pON1dlYkNvcmUz
MWNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2VFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2VFdgog
X19aTjdXZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplRXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFs
aXplRXYKIF9fWk43V2ViQ29yZTI2Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnVFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNmNvbnRleHRNZW51SXRlbVRhZ0Zv
bnRNZW51RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMjZjcmVhdGVBbmRB
cHBlbmRGb250U3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUyN2Nv
bnRleHRNZW51SXRlbVRhZ1Nob3dGb250c0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzRXYKIF9fWk43V2ViQ29y
ZTIyY29udGV4dE1lbnVJdGVtVGFnQm9sZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTIyY29udGV4dE1lbnVJdGVtVGFnQm9sZEV2CiBfX1pON1dlYkNvcmUyNGNv
bnRleHRNZW51SXRlbVRhZ0l0YWxpY0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYKIF9fWk43V2ViQ29yZTI3Y29u
dGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Mjdjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmVFdgogX19aTjdXZWJDb3Jl
MjVjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MjVjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lRXYKIF9fWk43V2ViQ29y
ZTI0Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MjRjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXNFdgogX19aTjdXZWJDb3Jl
Mjhjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKIF9fWk43
V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudUV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudUV2
CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjI4Y3JlYXRlQW5kQXBwZW5kU3Bl
ZWNoU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRleHRN
ZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmdFdgogX19aTjdXZWJD
b3JlMzBjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmdFdgogX19aTjdXZWJDb3JlMzBvdmVy
cmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNFUktOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0w
RUVFCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMwY29udGV4dE1l
bnVJdGVtVGFnU3RvcFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVtVGFn
V3JpdGluZ0RpcmVjdGlvbk1lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51RXYKIF9fWk43
V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMzhjcmVhdGVBbmRBcHBlbmRXcml0aW5nRGly
ZWN0aW9uU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzNGNvbnRl
eHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb25FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kzNGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb25Fdgog
X19aTjdXZWJDb3JlMjljb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodEV2Ci1fX1pON1dlYkNv
cmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRv
UmlnaHRFdgogX19aTjdXZWJDb3JlMjljb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdEV2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5Y29udGV4dE1lbnVJdGVt
VGFnUmlnaHRUb0xlZnRFdgogX19aTks3V2ViQ29yZTZFZGl0b3IxNmhhc0JpZGlTZWxlY3Rpb25F
dgogX19aTks3V2ViQ29yZTEzS2V5Ym9hcmRFdmVudDhjaGFyQ29kZUV2CiBfX1pON1dlYkNvcmUx
OGpzRE9NU2VsZWN0aW9uVHlwZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05TMF8x
MElkZW50aWZpZXJFCkBAIC0xNjI5NSw3ICsxNjIxOCw2IEBAIF9fWk5LN1dlYkNvcmUxMVJlbmRl
ckJsb2NrMjRjb250YWluc05vblplcm9CaWRpTGV2ZWxFdgogX19aTks3V2ViQ29yZTE5QXBwbHlQ
cm9wZXJ0eUxlbmd0aElMTlNfMTBMZW5ndGhBdXRvRTFFTE5TXzE1TGVuZ3RoSW50cmluc2ljRTFF
TE5TXzE4TGVuZ3RoTWluSW50cmluc2ljRTFFTE5TXzEwTGVuZ3RoTm9uZUUxRUxOU18xNUxlbmd0
aFVuZGVmaW5lZEUxRUUxMGFwcGx5VmFsdWVFUE5TXzE2Q1NTU3R5bGVTZWxlY3RvckVQTlNfOENT
U1ZhbHVlRQogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTExc2V0TWF4V2lkdGhFTlNfNkxlbmd0
aEUKIF9fWk43V2ViQ29yZTM2Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5RVJL
TjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kz
NmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKIF9f
Wk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIyNmhhc0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50RXYKIF9fWk5LN1dlYkNvcmUyMUJhY2tGb3J3YXJkQ29udHJvbGxlcjE4Y2FuR29CYWNrT3JG
b3J3YXJkRWkKIF9fWk5LN1dlYkNvcmU0UGFnZTE4Y2FuR29CYWNrT3JGb3J3YXJkRWkKQEAgLTE3
MDYzLDcgKzE2OTg1LDYgQEAgX19aTjdXZWJDb3JlMTRTVkdTTUlMRWxlbWVudDIwZGlzY29ubmVj
dENvbmRpdGlvbnNFdgogX19aTjdXZWJDb3JlMTdTTUlMVGltZUNvbnRhaW5lcjEwdW5zY2hlZHVs
ZUVQTlNfMTRTVkdTTUlMRWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDEwcmVuZGVyTmFtZUV2CiBfX1pON1dlYkNvcmUyN3NlYXJjaGFibGVJbmRleElu
dHJvZHVjdGlvbkV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3
c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uRXYKIF9fWk43V2ViQ29yZTE0UmVuZGVyUnVieVRl
eHRDMUVQTlNfNE5vZGVFCiBfX1pOSzdXZWJDb3JlMTNSZW5kZXJSdWJ5UnVuMTFoYXNSdWJ5VGV4
dEV2CiBfX1pOSzdXZWJDb3JlMTRSZW5kZXJSdWJ5VGV4dDEwaXNSdWJ5VGV4dEV2CkBAIC0xODk2
OSw3ICsxODg5MCw2IEBAIF9fWk43V2ViQ29yZThMb2NhdGlvbjdzZXRIcmVmRVJLTjNXVEY2U3Ry
aW5nRVBOU185RE9NV2luZG93RVM2XwogX19aTjdXZWJDb3JlMTdTdHlsZVBlbmRpbmdJbWFnZTEy
cmVtb3ZlQ2xpZW50RVBOU18xMlJlbmRlck9iamVjdEUKIF9fWk43V2ViQ29yZTE1U3VibWl0SW5w
dXRUeXBlMTJkZWZhdWx0VmFsdWVFdgogX19aTjdXZWJDb3JlMjRzdWJtaXRCdXR0b25EZWZhdWx0
TGFiZWxFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNHN1Ym1p
dEJ1dHRvbkRlZmF1bHRMYWJlbEV2CiBfX1pOSzdXZWJDb3JlMTFSZW5kZXJUYWJsZTIwZmlyc3RM
aW5lQm94QmFzZWxpbmVFdgogX19aTks3V2ViQ29yZTE4UmVuZGVyVGFibGVTZWN0aW9uMjBmaXJz
dExpbmVCb3hCYXNlbGluZUV2CiBfX1pOSzdXZWJDb3JlMTVSZW5kZXJXb3JkQnJlYWsxMHJlbmRl
ck5hbWVFdgpAQCAtMTk0NTUsNyArMTkzNzUsNiBAQCBfX1pON1dlYkNvcmVMMjJUb3BHcmFkaWVu
dEludGVycG9sYXRlRVB2UEtkUGQKIF9fWk43V2ViQ29yZUwyNUJvdHRvbUdyYWRpZW50SW50ZXJw
b2xhdGVFUHZQS2RQZAogX19aTjdXZWJDb3JlMTRSZXNldElucHV0VHlwZTEyZGVmYXVsdFZhbHVl
RXYKIF9fWk43V2ViQ29yZTIzcmVzZXRCdXR0b25EZWZhdWx0TGFiZWxFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyM3Jlc2V0QnV0dG9uRGVmYXVsdExhYmVsRXYK
IF9fWk43V2ViQ29yZTEyVVJMSW5wdXRUeXBlNmNyZWF0ZUVQTlNfMTZIVE1MSW5wdXRFbGVtZW50
RQogX19aTks3V2ViQ29yZTEyVVJMSW5wdXRUeXBlMTVmb3JtQ29udHJvbFR5cGVFdgogX19aTjdX
ZWJDb3JlMTRJbnB1dFR5cGVOYW1lczN1cmxFdgpAQCAtMjUyMjEsNyArMjUxNDAsNiBAQCBfX1pO
N1dlYkNvcmUxM0pTRXZlbnRTb3VyY2VEMUV2CiBfX1pON1dlYkNvcmUxMUV2ZW50U291cmNlRDBF
dgogX19aTkszSlNDMTRKU0dsb2JhbE9iamVjdDE0aXNHbG9iYWxPYmplY3RFdgogX19aTjdXZWJD
b3JlMjJtdWx0aXBsZUZpbGVVcGxvYWRUZXh0RWoKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MjJtdWx0aXBsZUZpbGVVcGxvYWRUZXh0RWoKIF9fWk43V2ViQ29yZTE3
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94MjJjYWxjVmVydGljYWxQcmVmV2lkdGhzRXYKIF9f
Wk43V2ViQ29yZTExUmVuZGVyU3R5bGUxNXNldEJveEZsZXhHcm91cEVqCiBfX1pOSzdXZWJDb3Jl
MTNSZW5kZXJMaXN0Qm94MTByZW5kZXJOYW1lRXYKQEAgLTI1NDk4LDcgKzI1NDE2LDYgQEAgX19a
TjdXZWJDb3JlMjJIVE1MRm9ybUNvbnRyb2xFbGVtZW50MzB1cGRhdGVWaXNpYmxlVmFsaWRhdGlv
bk1lc3NhZ2VFdgogX19aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDE2dmFsdWVNaXNzaW5n
VGV4dEV2CiBfX1pOSzdXZWJDb3JlOUlucHV0VHlwZTE2dmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pO
N1dlYkNvcmUzM3ZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2Ci1fX1pON1dlYkNv
cmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1p
c3NpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTE3VmFsaWRhdGlvbk1lc3NhZ2U2Y3JlYXRlRVBOU18y
MUZvcm1Bc3NvY2lhdGVkRWxlbWVudEUKIF9fWk43V2ViQ29yZTE3VmFsaWRhdGlvbk1lc3NhZ2Ux
MHNldE1lc3NhZ2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU1VGltZXJJTlNfMTdWYWxp
ZGF0aW9uTWVzc2FnZUVFNWZpcmVkRXYKQEAgLTI1NjA4LDExICsyNTUyNSw5IEBAIF9fWk43V2Vi
Q29yZTQ0dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JDaGVja2JveFRleHRFdgogX19a
Tks3V2ViQ29yZTE0UmFkaW9JbnB1dFR5cGUxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJD
b3JlNDF2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclJhZGlvVGV4dEV2CiBfX1pON1dl
YkNvcmUzNnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2Ci1fX1pON1dlYkNv
cmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM2dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJu
TWlzbWF0Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxNnR5cGVNaXNt
YXRjaFRleHRFdgogX19aTks3V2ViQ29yZTE0RW1haWxJbnB1dFR5cGUxNnR5cGVNaXNtYXRjaFRl
eHRFdgogX19aTjdXZWJDb3JlNDF2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWls
VGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMzdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29yZTM4anNIVE1MRmllbGRT
ZXRFbGVtZW50VmFsaWRhdGlvbk1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVF
UktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzZqc0hUTUxLZXlnZW5FbGVtZW50VmFs
aWRhdGlvbk1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVu
dGlmaWVyRQogX19aTjdXZWJDb3JlMzNqc0hUTUxGaWVsZFNldEVsZW1lbnRXaWxsVmFsaWRhdGVF
UE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMjg2
MTEsNyArMjg1MjYsNiBAQCBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyMjJmaW5kRnJhbWVGb3JO
YXZpZ2F0aW9uRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50
aW1lT2JqZWN0MjN0aHJvd0ludmFsaWRBY2Nlc3NFcnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk43
V2ViQ29yZTIwUmVuZGVyRW1iZWRkZWRPYmplY3QzMHNldFNob3dzQ3Jhc2hlZFBsdWdpbkluZGlj
YXRvckV2CiBfX1pON1dlYkNvcmUxN2NyYXNoZWRQbHVnaW5UZXh0RXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MTdjcmFzaGVkUGx1Z2luVGV4dEV2CiBfX1pON1dl
YkNvcmUxNlNjcmlwdENvbnRyb2xsZXIxMWNyZWF0ZVdvcmxkRXYKIF9fWk43V2ViQ29yZTlQYWdl
R3JvdXAyMGFkZFVzZXJTY3JpcHRUb1dvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEVSS04zV1RG
NlN0cmluZ0VSS05TXzRLVVJMRU5TM18xMFBhc3NPd25QdHJJTlMzXzZWZWN0b3JJUzRfTG0wRUVF
RUVTRF9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRU5TXzI1VXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lc0UKIF9fWk43V2ViQ29yZTEwVXNlclNjcmlwdEMyRVJLTjNXVEY2U3RyaW5nRVJLTlNf
NEtVUkxFTlMxXzEwUGFzc093blB0cklOUzFfNlZlY3RvcklTMl9MbTBFRUVFRVNCX05TXzIzVXNl
clNjcmlwdEluamVjdGlvblRpbWVFTlNfMjVVc2VyQ29udGVudEluamVjdGVkRnJhbWVzRQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwYTMxMzEy
ZDc3MDdhY2NjZTE3NjgwZGQ2MDgzOWQ2YmM3ZDBjOTI2Li43NjRjMGQ3MzM2NDc4NWVhNWQ3MTg4
OGFlZTFhYTYyMTExOGM0ODQ2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMjY1NDIsMTQgKzI2NTQyLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERy
YWdEYXRhLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNjY5MCwxMCArMjY2ODIsNiBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxMb2NhbGl6YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxMb2NhbGl6ZWRTdHJpbmdzLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZTk2MTc5M2FiMjgwN2VjMmQ4ZjY1NzZjY2U0YzA5MzdjYjRkZTgz
ZC4uMTJiZTE3ZDI3OTI3YzNhMjQ2MGJlMDk2ZDQ0YTljYWE0MWRjZjA1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTE0OCw3
ICs1MTQ4LDYgQEAKIAkJQkM1QTg2QjYwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVBODZC
NDBDMzM2N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uaCAqLzsgfTsKIAkJQkM1Qzc2MkEx
NDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBs
YXRmb3JtRXZlbnQuY3BwICovOyB9OwogCQlCQzVDNzYyQjE0OTdGRTE0MDBCQzQ3NzUgLyogUGxh
dGZvcm1FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM1Qzc2MjkxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzVDRkNBOTExRjc5MzMy
MDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUNGQ0E4MTFGNzkzMzIwMDk5RUQwOSAvKiBMb2Nh
bGl6YXRpb25TdHJhdGVneS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDNUVCNURCMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RUI1REEwRTgx
QjdFQTAwQjI1OTY1IC8qIEJvcmRlclZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1RUI1REQwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxp
bmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM1RUI1REMwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNUVCNURGMEU4MUI5QUIwMEIy
NTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RUI1REUwRTgxQjlBQjAwQjI1OTY1IC8qIENvbGxhcHNl
ZEJvcmRlclZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTUzNTIsOCArNTM1MSw2IEBACiAJCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4NyAv
KiBKU0NsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLzsgfTsK
IAkJQkNDMDY1ODkwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODUwRjNDRTJB
NzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwogCQlCQ0MwNjU4QTBGM0NF
MkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xp
ZW50UmVjdExpc3QuaCAqLzsgfTsKLQkJQkNDMzZFQjgxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0MzNkVCNjEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5LmNwcCAqLzsgfTsKLQkJQkNDMzZFQjkxMzQyQUEzRjAwNEJFRUY3IC8q
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneS5oICovOyB9OwogCQlCQ0M0Mzg3ODBFODg2Q0M3MDA1MzNERDUg
LyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzQzODc3MEU4ODZDQzcwMDUzM0RENSAvKiBKU0hUTUxJ
bnB1dEVsZW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQ0M1NzMzNTBENjk1QkJFMDA2RUY1MTcg
LyogRE9NUHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNDNTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQu
aCAqLzsgfTsKIAkJQkNDNTczMzYwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMz
NDBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSAqLzsgfTsKQEAgLTEyMDU0
LDcgKzEyMDUxLDYgQEAKIAkJQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVNlbGVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzVDNzYyODE0OTdGRTE0MDBCQzQ3NzUg
LyogUGxhdGZvcm1FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQbGF0Zm9ybUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1Qzc2
MjkxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCQzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REEwRTgxQjdFQTAwQjI1OTY1IC8q
IEJvcmRlclZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJvcmRlclZh
bHVlLmg7IHBhdGggPSBzdHlsZS9Cb3JkZXJWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzVFQjVEQzBFODFCOEREMDBCMjU5NjUgLyogT3V0bGluZVZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE91dGxpbmVWYWx1ZS5oOyBwYXRoID0gc3R5bGUv
T3V0bGluZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUVCNURFMEU4
MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5bGUvQ29s
bGFwc2VkQm9yZGVyVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMjc5
LDggKzEyMjc1LDYgQEAKIAkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVj
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVudFJlY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDMDY1ODUwRjNDRTJBNzAwQ0QyRDg3IC8qIEpT
Q2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzA2
NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkNDMzZFQjYxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQ0MzNkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M0Mzg3NzBFODg2Q0M3
MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Q
cm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dy
ZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDNTczMzQwRDY5NUJC
RTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTk2ODgsOCArMTk2ODIsNiBAQAogCQkJCUY1ODc4Njg0MDJERTNCODYwMUVB
NDEyMiAvKiBDdXJzb3IuaCAqLywKIAkJCQlBNTczMkIwODEzNkExNjFEMDA1QzhEN0MgLyogRGF0
ZUNvbXBvbmVudHMuY3BwICovLAogCQkJCUE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRl
Q29tcG9uZW50cy5oICovLAotCQkJCUJDQzM2RUI2MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwICovLAotCQkJCUJDQzM2RUI3MTM0MkFBM0YwMDRCRUVG
NyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLywKIAkJCQlBNzk1NDY0MjBCNUM0
Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovLAogCQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQw
NTI5RiAvKiBEcmFnRGF0YS5oICovLAogCQkJCUE3Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBE
cmFnSW1hZ2UuY3BwICovLApAQCAtMTk3MjMsNyArMTk3MTUsNiBAQAogCQkJCUJDRkY2NDkwMEVB
RDE1QzIwMEMxRDZGNyAvKiBMZW5ndGhTaXplLmggKi8sCiAJCQkJQTdBRDJGODUwRUM4OUQwNzAw
OEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLywKIAkJCQlBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIg
LyogTGlua0hhc2guaCAqLywKLQkJCQlCQzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxp
emF0aW9uU3RyYXRlZ3kuaCAqLywKIAkJCQlDMDQ2RTFBQjEyMDhBOUZFMDBCQTJDRjcgLyogTG9j
YWxpemVkU3RyaW5ncy5jcHAgKi8sCiAJCQkJOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8qIExv
Y2FsaXplZFN0cmluZ3MuaCAqLywKIAkJCQlBODIzOURGRTA5QjNDRjhBMDBCNjA2NDEgLyogTG9n
Z2luZy5jcHAgKi8sCkBAIC0yMTM5Nyw3ICsyMTM4OCw2IEBACiAJCQkJNDE2MkE0NTExMDExNDVB
RTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxQTNENThGMTAxQzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzM2RUI5MTM0MkFBM0YwMDRC
RUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNjdFQkY2MTAyOTYyQkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMkMxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5
RFNQS2VybmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAyRTEyQjAyNjc2MDBDMUEzNTkg
LyogRGVsYXlOb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTIzMDgyLDcgKzIzMDcyLDYgQEAKIAkJ
CQkwNkU4MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxl
VG9TY3JpcHRNYXBwaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODU2ODEyMkNBMDY0MDAz
QUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzVDRkNBOTEx
Rjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1NzMyQjBEMTM2QTE2QzQwMDVDOEQ3QyAvKiBMb2NhbGl6ZWREYXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNTE0MkM2OTEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVk
U3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDc5NCw3ICsyNDc4Myw2IEBACiAJCQkJNDE2
MkE0NTAxMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtl
clRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0Qg
LyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJD
QzM2RUI4MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2N0VCRjUxMDI5NjJCQTAwM0QyNTJBIC8qIERlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDJCMTJC
MDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
RDMxNjAyRDEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlOb2RlLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhM2E0ODYwNDk0MTJh
YTAxNTQzYjJjMmQ4YmNkMmI0ZjZkYWNjZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk2OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneS5oIgotCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0KLSNpbmNs
dWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNs
dWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgotI2luY2x1ZGUgPHd0Zi9VbnVzZWRQ
YXJhbS5oPgotCi0jaWYgVVNFKENGKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFdlIGNhbid0IHVzZSBTdHJp
bmc6OmZvcm1hdCBmb3IgdHdvIHJlYXNvbnM6Ci0vLyAgMSkgSXQgZG9lc24ndCBoYW5kbGUgbm9u
LUFTQ0lJIGNoYXJhY3RlcnMgaW4gdGhlIGZvcm1hdCBzdHJpbmcuCi0vLyAgMikgSXQgZG9lc24n
dCBoYW5kbGUgdGhlICUyJGQgc3ludGF4LgotLy8gTm90ZSB0aGF0IGJlY2F1c2UgfGZvcm1hdHwg
aXMgdXNlZCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byB2YV9zdGFydCwgaXQgY2Fubm90IGJl
IGEgcmVmZXJlbmNlCi0vLyB0eXBlIGFjY29yZGluZyB0byBzZWN0aW9uIDE4LjcvMyBvZiB0aGUg
QysrIE4xOTA1IHN0YW5kYXJkLgotc3RhdGljIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJpbmco
U3RyaW5nIGZvcm1hdCwgLi4uKQotewotI2lmIFVTRShDRikKLSAgICB2YV9saXN0IGFyZ3VtZW50
czsKLSAgICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7Ci0gICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBmb3JtYXRDRlN0cmluZyhBZG9wdENGLCBmb3JtYXQuY3JlYXRlQ0ZTdHJpbmcoKSk7
Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQoQWRvcHRDRiwgQ0ZTdHJpbmdDcmVh
dGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdENGU3RyaW5nLmdldCgpLCBhcmd1
bWVudHMpKTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICByZXR1cm4gcmVzdWx0LmdldCgp
OwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3Rh
cnQoYXJndW1lbnRzLCBmb3JtYXQpOwotICAgIFFTdHJpbmcgcmVzdWx0OwotICAgIHJlc3VsdC52
c3ByaW50Zihmb3JtYXQubGF0aW4xKCkuZGF0YSgpLCBhcmd1bWVudHMpOwotICAgIHZhX2VuZChh
cmd1bWVudHMpOwotICAgIHJldHVybiByZXN1bHQ7Ci0jZWxzZQotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIGZvcm1hdDsKLSNlbmRpZgotfQotCi0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotc3Rh
dGljIFN0cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcm
IG9yaWdpbmFsKQotewotICAgIGlmIChvcmlnaW5hbC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
biBvcmlnaW5hbDsKLSAgICAKLSAgICAvLyBUcnVuY2F0ZSB0aGUgc3RyaW5nIGlmIGl0J3MgdG9v
IGxvbmcuIFRoaXMgaXMgaW4gY29uc2lzdGVuY3kgd2l0aCBBcHBLaXQuCi0gICAgdW5zaWduZWQg
bWF4TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51SXRlbSA9IDI0OwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBlbGxpcHNpcywgKCZob3Jpem9udGFsRWxsaXBzaXMs
IDEpKTsKLSAgICAKLSAgICBTdHJpbmcgdHJpbW1lZCA9IG9yaWdpbmFsLnN0cmlwV2hpdGVTcGFj
ZSgpOwotICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVycyA9IG51bUNoYXJhY3RlcnNJbkdy
YXBoZW1lQ2x1c3RlcnModHJpbW1lZCwgbWF4TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29r
dXBNZW51SXRlbSk7Ci0gICAgcmV0dXJuIG51bWJlck9mQ2hhcmFjdGVycyA9PSB0cmltbWVkLmxl
bmd0aCgpID8gdHJpbW1lZCA6IHRyaW1tZWQubGVmdChudW1iZXJPZkNoYXJhY3RlcnMpICsgZWxs
aXBzaXM7Ci19Ci0jZW5kaWYKLQotRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5JiBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNoYXJlZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksIGRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eSwgKCkpOwotICAgIHJldHVybiBkZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k7Ci19Ci0KLURl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5KCkK
LXsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6aW5wdXRFbGVtZW50
QWx0VGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3Vi
bWl0IChpbnB1dCBlbGVtZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRo
IG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OnJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVzZXQgYnV0dG9ucyBpbiBm
b3JtcyBvbiB3ZWIgcGFnZXMiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3b3Jk
czogIiwKLSAgICAgICAgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBuZWFybHkt
b2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgnIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnN1Ym1pdEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1Ym1pdCIsICJkZWZh
dWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZUZp
bGVMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlIiwgInRp
dGxlIGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9uQ2hv
b3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hv
b3NlIEZpbGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNl
ZCBpbiBIVE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJs
ZS4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBm
aWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhU
TUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8g
ZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBh
cmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNl
bGVjdGVkIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmRlZmF1
bHREZXRhaWxzU3VtbWFyeVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEZXRh
aWxzIiwgInRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxz
dW1tYXJ5PiBjaGlsZCIpOwotfQotCi0jaWYgUExBVEZPUk0oTUFDKQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInVua25vd24iLCAiVW5rbm93biBmaWxlbmFtZSIpOwotfQot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gTGluayBpbiBOZXcgV2luZG93Iiwg
Ik9wZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtU
b0Rpc2soKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEb3dubG9hZCBMaW5rZWQgRmls
ZSIsICJEb3dubG9hZCBMaW5rZWQgRmlsZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlu
a1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBMaW5rIiwg
IkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyIs
ICJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxv
YWRJbWFnZVRvRGlzaygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRvd25sb2FkIElt
YWdlIiwgIkRvd25sb2FkIEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRv
Q2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBJbWFnZSIsICJD
b3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLSNpZiBQTEFURk9STShRVCkKLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJ
bWFnZVVybFRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBJ
bWFnZSBBZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0iKTsKLX0KLSNlbmRp
ZgotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9w
ZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3cgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBBdWRpbyBpbiBO
ZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2Fy
ZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRkcmVzcyIsICJD
b3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1
ZGlvTGlua1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBB
dWRpbyBBZGRyZXNzIiwgIkNvcHkgQXVkaW8gQWRkcmVzcyBMb2NhdGlvbiBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiQ29udHJvbHMiLCAiTWVkaWEgQ29udHJvbHMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vcCIsICJN
ZWRpYSBMb29wIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkK
LXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRW50ZXIgRnVsbHNjcmVlbiIsICJWaWRlbyBF
bnRlciBGdWxsc2NyZWVuIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsYXkiLCAiTWVkaWEgUGxheSBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGF1
c2UiLCAiTWVkaWEgUGF1c2UgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdp
bmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQ29weSIsICJDb3B5IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdHb0ZvcndhcmQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJGb3J3YXJk
IiwgIkZvcndhcmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlN0b3AiLCAiU3RvcCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWxvYWQiLCAiUmVsb2FkIGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1
dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJQYXN0ZSIsICJQYXN0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi0j
aWYgUExBVEZPUk0oR1RLKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpj
b250ZXh0TWVudUl0ZW1UYWdEZWxldGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuICJEZWxldGUiOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuICJJbnB1dCBNZXRob2RzIjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gIlVuaWNvZGUiOwotfQotCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gIlNlbGVjdCBBbGwiOwotfQotCi0jZW5kaWYKLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVz
c2VzRm91bmQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyBHdWVzc2VzIEZvdW5k
IiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxp
bmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgU3BlbGxpbmciLCAiSWdu
b3JlIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMZWFybiBTcGVsbGluZyIsICJMZWFybiBTcGVsbGlu
ZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQotewotI2lmIFBMQVRGT1JNKE1B
QykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VhcmNoUHJvdmlk
ZXJOYW1lKEFkb3B0Q0YsIHdrQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCkp
OwotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiU2VhcmNo
IHdpdGggJUAiLCAiU2VhcmNoIHdpdGggc2VhcmNoIHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVt
IHdpdGggcHJvdmlkZXIgbmFtZSBpbnNlcnRlZCIpLCBzZWFyY2hQcm92aWRlck5hbWUuZ2V0KCkp
OwotI2Vsc2UKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VhcmNoIHdpdGggR29vZ2xlIiwg
IlNlYXJjaCB3aXRoIEdvb2dsZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotI2VuZGlmCi19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tV
cEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIHNlbGVjdGVkU3RyaW5nKQotewotI2lmIGRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCi0gICAgVU5VU0VEX1BBUkFNKHNlbGVjdGVkU3RyaW5nKTsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IiwgIkxvb2sgVXAgaW4gRGljdGlvbmFyeSBj
b250ZXh0IG1lbnUgaXRlbSIpOwotI2Vsc2UKLSNpZiBVU0UoQ0YpCi0gICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBzZWxlY3RlZENGU3RyaW5nKEFkb3B0Q0YsIHRydW5jYXRlZFN0cmluZ0Zvckxv
b2t1cE1lbnVJdGVtKHNlbGVjdGVkU3RyaW5nKS5jcmVhdGVDRlN0cmluZygpKTsKLSAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCcJUDigJ0i
LCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQiKSwgc2VsZWN0
ZWRDRlN0cmluZy5nZXQoKSk7Ci0jZWxzZQotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29r
IFVwIOKAnDxzZWxlY3Rpb24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBz
ZWxlY3RlZCB3b3JkIikucmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRTdHJpbmdGb3JM
b29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmluZykpOwotI2VuZGlmCi0jZW5kaWYKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbkxp
bmsoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIExpbmsiLCAiT3BlbiBMaW5r
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJZ25vcmUgR3JhbW1hciBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTcGVsbGluZyBhbmQgR3JhbW1hciIsICJTcGVsbGluZyBhbmQgR3JhbW1hciBjb250ZXh0IHN1
Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQotewotICAgIGlm
IChzaG93KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2hvdyBTcGVsbGluZyBhbmQg
R3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
SGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIERvY3VtZW50IE5v
dyIsICJDaGVjayBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
V2hpbGVUeXBpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBTcGVsbGlu
ZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcgd2hpbGUgdHlwaW5nIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIsICJDaGVjayBncmFtbWFy
IHdpdGggc3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ0JvbGQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJCb2xkIiwgIkJvbGQg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiSXRhbGljIiwgIkl0YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJPdXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0Rp
cmVjdGlvbk1lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXJhZ3JhcGggRGly
ZWN0aW9uIiwgIlBhcmFncmFwaCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1RleHREaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VsZWN0
aW9uIERpcmVjdGlvbiIsICJTZWxlY3Rpb24gZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
RGVmYXVsdCIsICJEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ0xlZnRUb1JpZ2h0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGVmdCB0byBS
aWdodCIsICJMZWZ0IHRvIFJpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmlnaHQgdG8gTGVmdCIsICJSaWdodCB0
byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLSNpZiBQTEFURk9STShNQUMpCi0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJj
aEluU3BvdGxpZ2h0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VhcmNoIGluIFNw
b3RsaWdodCIsICJTZWFyY2ggaW4gU3BvdGxpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1No
b3dGb250cygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgRm9udHMiLCAiU2hv
dyBmb250cyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJTdHlsZXMuLi4iLCAiU3R5bGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1Nob3dDb2xvcnMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IENvbG9ycyIs
ICJTaG93IGNvbG9ycyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlZWNoIiwgIlNwZWVjaCBjb250ZXh0IHN1Yi1tZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlN0YXJ0IFNwZWFraW5nIiwgIlN0YXJ0IHNwZWFraW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1N0b3BTcGVha2luZygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0b3AgU3BlYWtp
bmciLCAiU3RvcCBzcGVha2luZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxp
bmdBdXRvbWF0aWNhbGx5KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29ycmVjdCBT
cGVsbGluZyBBdXRvbWF0aWNhbGx5IiwgIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAiU3Vic3RpdHV0aW9ucyBjb250ZXh0IHN1
Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoYm9vbCBzaG93KQotewotICAgIGlm
IChzaG93KSAKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3Vic3RpdHV0aW9u
cyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSGlkZSBT
dWJzdGl0dXRpb25zIiwgIm1lbnUgaXRlbSB0aXRsZSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydENvcHlQYXN0ZSgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0IENvcHkvUGFzdGUiLCAiU21hcnQgQ29w
eS9QYXN0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlcygpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0IFF1b3RlcyIsICJTbWFydCBRdW90ZXMgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29u
dGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTbWFydCBEYXNoZXMiLCAiU21hcnQgRGFzaGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0TGlua3MoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBMaW5rcyIsICJT
bWFydCBMaW5rcyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJUZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFj
ZW1lbnQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudSgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRyYW5zZm9ybWF0aW9ucyIsICJUcmFuc2Zvcm1hdGlv
bnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2UoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVyIENhc2UiLCAiTWFrZSBVcHBlciBDYXNlIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNlIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0NhcGl0YWxpemUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
YXBpdGFsaXplIiwgIkNhcGl0YWxpemUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFj
ayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIHJlcGxhY2VkU3RyaW5nOwotfQotCi0jZW5kaWYKLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAiSW5zcGVj
dCBFbGVtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6c2VhcmNo
TWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
Tm8gcmVjZW50IHNlYXJjaGVzIiwgIkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVudSB0aGF0IGFw
cGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3aGVuIG5vIHNl
YXJjaGVzIGhhdmUgYmVlbiBwZXJmb3JtZWQiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlJlY2VudCBTZWFyY2hlcyIsICJsYWJlbCBmb3IgZmlyc3QgaXRl
bSBpbiB0aGUgbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZp
ZWxkIGltYWdlLCB1c2VkIGFzIGVtYmVkZGVkIG1lbnUgdGl0bGUiKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNU
ZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVz
IiwgIm1lbnUgaXRlbSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdz
IGNvbnRlbnRzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFY
V2ViQXJlYVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJIVE1MIGNvbnRlbnQi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB3ZWIgYXJlYSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWExpbmtUZXh0KCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygibGluayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIGxpbmsiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
QVhMaXN0TWFya2VyVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpc3QgbWFy
a2VyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbGlzdCBtYXJrZXIiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhJbWFnZU1hcFRleHQo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJpbWFnZSBtYXAiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBpbWFnZSBtYXAiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6QVhIZWFkaW5nVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImhlYWRpbmciLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBo
ZWFkaW5ncyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWERl
ZmluaXRpb25MaXN0VGVybVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJt
IiwgInRlcm0gd29yZCBvZiBhIGRlZmluaXRpb24iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiZGVmaW5pdGlvbiIsICJkZWZpbml0aW9uIHBocmFzZSIp
OwotfQotCi0jaWYgUExBVEZPUk0oTUFDKQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6QVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQotewot
ICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uQWxlcnQiKQotICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiYWxlcnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgYWN0cyBhcyBhbiBhbGVydC4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNh
dGlvbkFsZXJ0RGlhbG9nIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IGRp
YWxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFsZXJ0
IGRpYWxvZy4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkRpYWxvZyIp
Ci0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBQXBwbGljYXRpb25Mb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
bG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBjb25zb2xl
IGxvZy4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbk1hcnF1ZWUiKQot
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibWFycXVlZSIsICJBbiBBUklBIGFjY2Vzc2li
aWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgbWFycXVlZS4iKTsgICAgCi0gICAgaWYgKGFyaWFU
eXBlID09ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiYXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGFjdHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0g
IkFSSUFBcHBsaWNhdGlvblRpbWVyIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRp
bWVyIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gdXBkYXRp
bmcgdGltZXIuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50IikKLSAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRvY3VtZW50IiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFU
eXBlID09ICJBUklBRG9jdW1lbnRBcnRpY2xlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImFydGljbGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
biBhcnRpY2xlLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudE5vdGUi
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibm90ZSIsICJBbiBBUklBIGFjY2Vzc2li
aWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgbm90ZSBpbiBhIGRvY3VtZW50LiIpOyAgICAKLSAg
ICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudFJlZ2lvbiIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJyZWdpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQg
YWN0cyBhcyBhIGRpc3RpbmN0IHJlZ2lvbiBpbiBhIGRvY3VtZW50LiIpOyAgICAKLSAgICBpZiAo
YXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0FwcGxpY2F0aW9uIikKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGFjdHMgYXMgYW4gYXBwbGljYXRpb24uIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAi
QVJJQUxhbmRtYXJrQmFubmVyIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJhbm5l
ciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgYmFubmVyLiIp
OyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0NvbXBsZW1lbnRhcnkiKQot
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY29tcGxlbWVudGFyeSIsICJBbiBBUklBIGFj
Y2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgcmVnaW9uIG9mIGNvbXBsZW1lbnRhcnkg
aW5mb3JtYXRpb24uIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQ29u
dGVudEluZm8iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY29udGVudCIsICJBbiBB
UklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBjb250ZW50LiIpOyAgICAKLSAg
ICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya01haW4iKQotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygibWFpbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBpcyB0
aGUgbWFpbiBwb3J0aW9uIG9mIHRoZSB3ZWJzaXRlLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUg
PT0gIkFSSUFMYW5kbWFya05hdmlnYXRpb24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygibmF2aWdhdGlvbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlu
cyB0aGUgbWFpbiBuYXZpZ2F0aW9uIGVsZW1lbnRzIG9mIGEgd2Vic2l0ZS4iKTsgICAgCi0gICAg
aWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQotICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNv
bnRhaW5zIGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOyAgICAKLSAgICBpZiAoYXJp
YVR5cGUgPT0gIkFSSUFVc2VySW50ZXJmYWNlVG9vbHRpcCIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJ0b29sdGlwIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYSB0b29sdGlwLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFUYWJQYW5l
bCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0YWIgcGFuZWwiLCAiQW4gQVJJQSBh
Y2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIGNvbnRlbnQgb2YgYSB0YWIuIik7
Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRNYXRoIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIm1hdGgiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQg
Y29udGFpbnMgbWF0aGVtYXRpY2FsIHN5bWJvbHMuIik7Ci0gICAgcmV0dXJuIFN0cmluZygpOwot
fQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQnV0dG9u
QWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInByZXNzIiwgIlZlcmIg
c3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgYnV0dG9uIGlzIHByZXNz
ZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpIAotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJzZWxlY3QiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3
aWxsIG9jY3VyIHdoZW4gYSByYWRpbyBidXR0b24gaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nl
c3NpYmlsaXR5Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFY
VGV4dEZpZWxkQWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2
YXRlIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4
dCBmaWVsZCBpcyBzZWxlY3RlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQ2hlY2tlZENoZWNrQm94QWN0aW9u
VmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInVuY2hlY2siLCAiVmVyYiBzdGF0
aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBjaGVja2VkIGNoZWNrYm94IGlz
IGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0
aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2Vk
LCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6QVhNZW51TGlzdEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuICJzZWxlY3QiOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5OjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiAic2VsZWN0IjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6QVhMaW5rQWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3Vy
IHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptaXNzaW5nUGx1Z2luVGV4dCgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0
ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWdpbiBpcyBtaXNzaW5nIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNyYXNoZWRQbHVnaW5UZXh0KCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiUGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUg
dXNlZCBpZiBwbHVnaW4gaG9zdCBwcm9jZXNzIGhhcyBjcmFzaGVkIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWdu
ZWQgbnVtYmVyT2ZGaWxlcykKLXsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdF
Ql9VSV9TVFJJTkcoIiVkIGZpbGVzIiwgIkxhYmVsIHRvIGRlc2NyaWJlIHRoZSBudW1iZXIgb2Yg
ZmlsZXMgc2VsZWN0ZWQgaW4gYSBmaWxlIHVwbG9hZCBjb250cm9sIHRoYXQgYWxsb3dzIG11bHRp
cGxlIGZpbGVzIiksIG51bWJlck9mRmlsZXMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojp1bmtub3duRmlsZVNpemVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlzdGlu
ZyBpdGVtIik7Ci19Ci0KLSNpZiBQTEFURk9STShXSU4pCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OnVwbG9hZEZpbGVUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiAidXBsb2FkIjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6YWxsRmlsZXNUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiAiYWxsIGZpbGVzIjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmJ1aWx0SW5QREZQbHVnaW5OYW1lKCkK
LXsKLSAgICAvLyBBbHNvIGV4cG9zZWQgdG8gRE9NLgotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJXZWJLaXQgYnVpbHQtaW4gUERGIiwgIlBzZXVkbyBwbHVnLWluIG5hbWUsIHZpc2libGUgaW4g
SW5zdGFsbGVkIFBsdWctaW5zIHBhZ2UgaW4gU2FmYXJpLiIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OjpwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCi17Ci0g
ICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4KLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUG9y
dGFibGUgRG9jdW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkgdHlwZSBz
dXBwb3J0ZWQgYnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxlZCBQbHVn
LWlucyBwYWdlIGluIFNhZmFyaS4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6a2V5Z2VuTWVudUl0ZW01MTIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCI1MTIgKExvdyBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1l
bnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6a2V5Z2VuTWVu
dUl0ZW0xMDI0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAyNCAoTWVkaXVtIEdy
YWRlKSIsICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjprZXlnZW5NZW51SXRlbTIwNDgoKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCIyMDQ4IChIaWdoIEdyYWRlKSIsICJNZW51IGl0
ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjprZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYg
aG9zdCkKLXsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRlN0cmluZyhBZG9wdENG
LCBob3N0LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJp
bmcoV0VCX1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBrZXljaGFpbiBrZXkgZ2Vu
ZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0cmluZy5nZXQoKSk7Ci19Ci0KLSNp
ZiBQTEFURk9STShJT1MpCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpodG1s
U2VsZWN0TXVsdGlwbGVJdGVtcyhzaXplX3QgY291bnQpCi17Ci0gICAgc3dpdGNoIChjb3VudCkg
ewotICAgIGNhc2UgMDoKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjAgSXRlbXMiLCAi
UHJlc2VudCB0aGUgZWxlbWVudCA8c2VsZWN0IG11bHRpcGxlPiB3aGVuIG5vIDxvcHRpb24+IGl0
ZW1zIGFyZSBzZWxlY3RlZCAoaU9TIG9ubHkpIik7Ci0gICAgY2FzZSAxOgotICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiMSBJdGVtIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBt
dWx0aXBsZT4gd2hlbiBhIHNpbmdsZSA8b3B0aW9uPiBpcyBzZWxlY3RlZCAoaU9TIG9ubHkpIik7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJf
VUlfU1RSSU5HKCIlenUgSXRlbXMiLCAiUHJlc2VudCB0aGUgbnVtYmVyIG9mIHNlbGVjdGVkIDxv
cHRpb24+IGl0ZW1zIGluIGEgPHNlbGVjdCBtdWx0aXBsZT4gZWxlbWVudCAoaU9TIG9ubHkpIiks
IGNvdW50KTsKLSAgICB9Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQotI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6aW1hZ2VU
aXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQotewotI2lm
IFVTRShDRikKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQotICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gZmlsZW5hbWVDRlN0cmluZyhBZG9wdENGLCBmaWxlbmFtZS5jcmVhdGVD
RlN0cmluZygpKTsKLSAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGxvY2FsZShBZG9wdENGLCBD
RkxvY2FsZUNvcHlDdXJyZW50KCkpOwotICAgIFJldGFpblB0cjxDRk51bWJlckZvcm1hdHRlclJl
Zj4gZm9ybWF0dGVyKEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRlKDAsIGxvY2FsZS5n
ZXQoKSwga0NGTnVtYmVyRm9ybWF0dGVyRGVjaW1hbFN0eWxlKSk7Ci0KLSAgICBpbnQgd2lkdGhJ
bnQgPSBzaXplLndpZHRoKCk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiB3aWR0aChBZG9w
dENGLCBDRk51bWJlckNyZWF0ZSgwLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmd2lkdGhJbnQpKTsKLSAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHdpZHRoU3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVyRm9y
bWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIHdpZHRoLmdl
dCgpKSk7Ci0KLSAgICBpbnQgaGVpZ2h0SW50ID0gc2l6ZS5oZWlnaHQoKTsKLSAgICBSZXRhaW5Q
dHI8Q0ZOdW1iZXJSZWY+IGhlaWdodChBZG9wdENGLCBDRk51bWJlckNyZWF0ZSgwLCBrQ0ZOdW1i
ZXJJbnRUeXBlLCAmaGVpZ2h0SW50KSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBoZWln
aHRTdHJpbmcoQWRvcHRDRiwgQ0ZOdW1iZXJGb3JtYXR0ZXJDcmVhdGVTdHJpbmdXaXRoTnVtYmVy
KDAsIGZvcm1hdHRlci5nZXQoKSwgaGVpZ2h0LmdldCgpKSk7Ci0KLSAgICByZXR1cm4gZm9ybWF0
TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiVAICVAw5clQCBwaXhlbHMiLCAid2luZG93
IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9s
LCBub3QgeCkiKSwgZmlsZW5hbWVDRlN0cmluZy5nZXQoKSwgd2lkdGhTdHJpbmcuZ2V0KCksIGhl
aWdodFN0cmluZy5nZXQoKSk7Ci0jZWxzZQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmls
ZW5hbWVDRlN0cmluZyhBZG9wdENGLCBmaWxlbmFtZS5jcmVhdGVDRlN0cmluZygpKTsKLSAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiVAICVkw5clZCBwaXhl
bHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGlj
YXRpb24gc3ltYm9sLCBub3QgeCkiKSwgZmlsZW5hbWVDRlN0cmluZy5nZXQoKSwgc2l6ZS53aWR0
aCgpLCBzaXplLmhlaWdodCgpKTsKLSNlbmRpZgotI2Vsc2UKLSAgICByZXR1cm4gZm9ybWF0TG9j
YWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIjxmaWxlbmFtZT4gJWTDlyVkIHBpeGVscyIsICJ3
aW5kb3cgdGl0bGUgZm9yIGEgc3RhbmRhbG9uZSBpbWFnZSAodXNlcyBtdWx0aXBsaWNhdGlvbiBz
eW1ib2wsIG5vdCB4KSIpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpLnJlcGxhY2UoIjxm
aWxlbmFtZT4iLCBmaWxlbmFtZSk7Ci0jZW5kaWYKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkxvYWRpbmcuLi4iLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMg
bWVzc2FnZSB3aGVuIHRoZSBtZWRpYSBpcyBsb2FkaW5nIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMaXZlIEJyb2FkY2FzdCIsICJNZWRpYSBj
b250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gd2F0Y2hpbmcgYSBsaXZlIGJyb2FkY2FzdCIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBpZiAobmFt
ZSA9PSAiQXVkaW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImF1ZGlv
IGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IGF1ZGlvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1l
bnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidmlkZW8gZWxlbWVudCBjb250cm9s
bGVyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBj
b250cm9sbGVyIik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygibXV0ZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIG11dGUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRl
c2NyaXB0aW9uIGZvciB0dXJuIG11dGUgb2ZmIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJQ
bGF5QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBsYXkiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBwbGF5IGJ1dHRvbiIpOwotICAgIGlmIChuYW1l
ID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXVzZSIs
ICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHBhdXNlIGJ1dHRvbiIpOwotICAg
IGlmIChuYW1lID09ICJTbGlkZXIiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibW92
aWUgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHRpbWVsaW5lIHNs
aWRlciIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJ0aW1lbGluZSBzbGlkZXIgdGh1bWIiLCAiYWNjZXNzaWJpbGl0eSByb2xl
IGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSB0aHVtYiIpOwotICAgIGlmIChuYW1lID09ICJSZXdp
bmRCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYmFjayAzMCBzZWNvbmRz
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Igc2VlayBiYWNrIDMwIHNlY29u
ZHMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQot
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHRvIHJlYWx0aW1lIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcmV0dXJuIHRvIHJlYWwgdGltZSBidXR0b24i
KTsKLSAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImVsYXBzZWQgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIGVsYXBzZWQgdGltZSBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVS
ZW1haW5pbmdEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJlbWFpbmlu
ZyB0aW1lIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZSByZW1haW5p
bmcgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInN0YXR1cyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIG1vdmllIHN0YXR1cyIpOwotICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImZ1bGxzY3JlZW4iLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOwot
ICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJmYXN0IGZvcndhcmQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImZhc3QgcmV2ZXJzZSIsICJhY2Nl
c3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGZhc3QgcmV2ZXJzZSBidXR0b24iKTsKLSAg
ICBpZiAobmFtZSA9PSAiU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInNob3cgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0gICAgaWYg
KG5hbWUgPT0gIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJoaWRlIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIGhpZGUgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOwotCi0gICAgLy8gRklY
TUU6IHRoZSBDb250cm9sc1BhbmVsIGNvbnRhaW5lciBzaG91bGQgbmV2ZXIgYmUgdmlzaWJsZSBp
biB0aGUgYWNjZXNzaWJpbGl0eSBoaWVyYXJjaHkuCi0gICAgaWYgKG5hbWUgPT0gIkNvbnRyb2xz
UGFuZWwiKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBT
dHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFu
ZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGF1
ZGlvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQi
KQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidmlkZW8gZWxlbWVudCBwbGF5YmFjayBj
b250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0
aW9uIGZvciB2aWRlbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiTXV0
ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtdXRlIGF1ZGlvIHRyYWNr
cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbXV0ZSBidXR0b24iKTsKLSAgICBpZiAo
bmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInVu
bXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHVuIG11dGUg
YnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiYmVnaW4gcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQg
Zm9yIHBsYXkgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdXNlIHBsYXliYWNrIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciBwYXVzZSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIiLCAiYWNj
ZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciIpOwotICAgIGlmIChuYW1l
ID09ICJTbGlkZXJUaHVtYiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtb3ZpZSB0
aW1lIHNjcnViYmVyIHRodW1iIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0aW1lbGlu
ZSBzbGlkZXIgdGh1bWIiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgbW92aWUgYmFjayAzMCBzZWNvbmRzIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBqdW1wIGJhY2sgMzAgc2Vjb25kcyBidXR0b24iKTsK
LSAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJyZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSIsICJh
Y2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFs
IHRpbWUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCi0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50IG1vdmllIHRpbWUgaW4gc2Vjb25k
cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZWxhcHNlZCB0aW1lIGRpc3BsYXkiKTsK
LSAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibnVtYmVyIG9mIHNlY29uZHMgb2YgbW92aWUgcmVtYWluaW5nIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciByZW1haW5pbmcgdGltZSBkaXNwbGF5Iik7Ci0gICAg
aWYgKG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiY3VycmVudCBtb3ZpZSBzdGF0dXMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1v
dmllIHN0YXR1cyBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBiYWNrIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBmYXN0IHJld2luZCBidXR0b24iKTsKLSAgICBpZiAobmFt
ZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
c2VlayBxdWlja2x5IGZvcndhcmQiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGZhc3Qg
Zm9yd2FyZCBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IG1vdmllIGluIGZ1bGxzY3JlZW4gbW9k
ZSIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZW50ZXIgZnVsbHNjcmVlbiBidXR0b24i
KTsKLSAgICBpZiAobmFtZSA9PSAiU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInN0YXJ0IGRpc3BsYXlpbmcgY2xvc2VkIGNhcHRpb25zIiwg
ImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBzaG93IGNsb3NlZCBjYXB0aW9ucyBidXR0b24i
KTsKLSAgICBpZiAobmFtZSA9PSAiSGlkZUNsb3NlZENhcHRpb25zQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInN0b3AgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGhpZGUgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIp
OwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2NhbGl6ZWRNZWRpYVRpbWVE
ZXNjcmlwdGlvbihmbG9hdCB0aW1lKQotewotICAgIGlmICghaXNmaW5pdGUodGltZSkpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJpbmRlZmluaXRlIHRpbWUiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIGFuIGluZGVmaW5pdGUgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVl
Iik7Ci0KLSAgICBpbnQgc2Vjb25kcyA9IHN0YXRpY19jYXN0PGludD4oZmFic2YodGltZSkpOyAK
LSAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsKLSAgICBpbnQgaG91cnMg
PSBzZWNvbmRzIC8gKDYwICogNjApOwotICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkg
JSA2MDsKLSAgICBzZWNvbmRzICU9IDYwOwotCi0gICAgaWYgKGRheXMpCi0gICAgICAgIHJldHVy
biBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBkYXlzICUyJGQgaG91
cnMgJTMkZCBtaW51dGVzICU0JGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDEgZGF5IiksIGRheXMsIGhvdXJzLCBt
aW51dGVzLCBzZWNvbmRzKTsKLSAgICBpZiAoaG91cnMpCi0gICAgICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBob3VycyAlMiRkIG1pbnV0ZXMgJTMk
ZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVy
IHRpbWUgdmFsdWUgPj0gNjAgbWludXRlcyIpLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7Ci0g
ICAgaWYgKG1pbnV0ZXMpCi0gICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VC
X1VJX1NUUklORygiJTEkZCBtaW51dGVzICUyJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIHNlY29uZHMiKSwg
bWludXRlcywgc2Vjb25kcyk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJf
VUlfU1RSSU5HKCIlMSRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1l
ZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA8IDYwIHNlY29uZHMiKSwgc2Vjb25kcyk7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZhbHVlIG1pc3Np
bmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBmb3JtIGNvbnRyb2wgZWxlbWVu
dHMgdGhhdCBoYXZlIG5vIHZhbHVlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZv
ciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2Fn
ZVBhdHRlcm5NaXNtYXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXR0
ZXJuIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9s
cyByZXF1aXJpbmcgYSBjb25zdHJhaW5lZCB2YWx1ZSBhY2NvcmRpbmcgdG8gcGF0dGVybiIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vIGxvbmciLCAi
VmFsaWRhdGlvbiBtZXNzYWdlIGZvciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVl
IGxvbmdlciB0aGFuIG1heGltdW0gYWxsb3dlZCBsZW5ndGgiKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1Rl
eHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ciLCAiVmFs
aWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbG93ZXIg
dGhhbiBhbGxvd2VkIG1pbmltdW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInJhbmdlIG92ZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBm
b3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGhpZ2hlciB0aGFuIGFsbG93ZWQgbWF4
aW11bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250
cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRF
R0lFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMmU5ZGY1MTY5
OTZhODM3N2FlZDRjNjg5NDMxNWRkOWJhZjFlYWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxOTUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLSNkZWZp
bmUgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLQotI2lmIFVTRShQTEFURk9STV9TVFJB
VEVHSUVTKQotCi0jaW5jbHVkZSAiTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kgOiBwdWJsaWMgTG9jYWxpemF0aW9uU3RyYXRlZ3kgewot
cHVibGljOgotICAgIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneSgpOwotCi0gICAgc3RhdGlj
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneSYgc2hhcmVkKCk7Ci0KLSAgICB2aXJ0dWFsIFN0
cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgcmVzZXRCdXR0
b25EZWZhdWx0TGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hhYmxlSW5kZXhJbnRy
b2R1Y3Rpb24oKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpOwotI2lmIFBMQVRGT1JNKE1BQykK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCk7Ci0jZW5kaWYK
LSNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpOwotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCk7Ci0jaWYg
UExBVEZPUk0oUVQpCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVXJsVG9DbGlwYm9hcmQoKTsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0dvQmFjaygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9y
d2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpOwotI2lmIFBMQVRGT1JNKEdUSykKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWxldGUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdVbmljb2RlKCk7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFFUKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgp
OwotI2VuZGlmCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2Vz
Rm91bmQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVs
bGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxp
bmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnko
Y29uc3QgU3RyaW5nJiBzZWxlY3RlZFN0cmluZyk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnT3BlbkxpbmsoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVHcmFtbWFyKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3BlbGxpbmdNZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnSXRhbGljKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VW5kZXJsaW5lKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGlu
ZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rp
b25NZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVj
dGlvbk1lbnUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0
RGlyZWN0aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRv
UmlnaHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVm
dCgpOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1Nob3dGb250cygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1N0eWxlcygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xv
cnMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRp
Y2FsbHkoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRp
b25zTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJz
dGl0dXRpb25zKGJvb2wgc2hvdyk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU21hcnRDb3B5UGFzdGUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTbWFydFF1b3RlcygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0RGFzaGVzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRM
aW5rcygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNl
bWVudCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0
aW9uc01lbnUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBw
ZXJDYXNlKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2Vy
Q2FzZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0
IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcpOwotI2VuZGlmCi0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJk
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250
cm9scygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
bGF5KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpOwotI2Vu
ZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJjaE1l
bnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVS
ZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Q2xlYXJS
ZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFdlYkFyZWFUZXh0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5rVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFY
TGlzdE1hcmtlclRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEltYWdlTWFwVGV4dCgpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIEFYSGVhZGluZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBB
WERlZmluaXRpb25MaXN0VGVybVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWERlZmluaXRp
b25MaXN0RGVmaW5pdGlvblRleHQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBT
dHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKTsKLSNl
bmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpOwotICAgIHZpcnR1
YWwgU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
QVhUZXh0RmllbGRBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhDaGVja2VkQ2hl
Y2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhVbmNoZWNrZWRDaGVja0Jv
eEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0QWN0aW9uVmVyYigp
OwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBBWExpbmtBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWlz
c2luZ1BsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVt
YmVyT2ZGaWxlcyk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4dCgpOwot
I2lmIFBMQVRGT1JNKFdJTikKLSAgICB2aXJ0dWFsIFN0cmluZyB1cGxvYWRGaWxlVGV4dCgpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGFsbEZpbGVzVGV4dCgpOwotI2VuZGlmCi0jaWYgUExBVEZPUk0o
TUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIGJ1aWx0SW5QREZQbHVnaW5OYW1lKCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgcGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBrZXlnZW5NZW51SXRlbTUxMigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGtleWdlbk1lbnVJ
dGVtMTAyNCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGtleWdlbk1lbnVJdGVtMjA0OCgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGtleWdlbktleWNoYWluSXRlbU5hbWUoY29uc3QgU3RyaW5nJiBob3N0
KTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCBTdHJpbmcgaHRtbFNlbGVjdE11bHRp
cGxlSXRlbXMoc2l6ZV90KTsKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCi0jZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIGltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBm
aWxlbmFtZSwgY29uc3QgSW50U2l6ZSYpOwotICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxlbWVu
dExvYWRpbmdTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMaXZl
QnJvYWRjYXN0U3RhdGVUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBs
b2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJik7Ci0gICAg
dmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQpOwotICAg
IHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShQTEFURk9STV9TVFJB
VEVHSUVTKQotCi0jZW5kaWYgLy8gRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4ZmFiNzY0Yjg2YWVlY2ZkZTgwMDM4ZjVkMmYzMjkxN2Y1Mjhm
OWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKKysrIC9kZXYvbnVsbApA
QCAtMSwyMDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLSNkZWZpbmUgTG9jYWxpemF0
aW9uU3RyYXRlZ3lfaAotCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0KLSNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEludFNpemU7
Ci0KLWNsYXNzIExvY2FsaXphdGlvblN0cmF0ZWd5IHsKLXB1YmxpYzogICAgCi0gICAgdmlydHVh
bCBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBy
ZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hh
YmxlSW5kZXhJbnRyb2R1Y3Rpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3VibWl0QnV0
dG9uRGVmYXVsdExhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9v
c2VGaWxlTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11
bHRpcGxlRmlsZXNMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uTm9G
aWxlU2VsZWN0ZWRMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uTm9G
aWxlc1NlbGVjdGVkTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZGVmYXVsdERldGFp
bHNTdW1tYXJ5VGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCkgPSAwOwotI2VuZGlmCi0KLSNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTGlua0luTmV3V2luZG93KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9h
cmQoKSA9IDA7Ci0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
RUZMKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkKCkgPSAwOwotI2VuZGlmCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2soKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnR29Gb3J3YXJkKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1N0b3AoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmVsb2Fk
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpID0gMDsKLSNpZiBQ
TEFURk9STShHVEspCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVsZXRl
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lucHV0TWV0aG9k
cygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlKCkg
PSAwOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZP
Uk0oRUZMKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgp
ID0gMDsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vl
c3Nlc0ZvdW5kKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ln
bm9yZVNwZWxsaW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0xlYXJuU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU2VhcmNoV2ViKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0xvb2tVcEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIHNlbGVjdGVkU3RyaW5nKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9v
bCBzaG93KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVj
a1NwZWxsaW5nV2hpbGVUeXBpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnSXRhbGljKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1VuZGVybGluZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPdXRsaW5lKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1dyaXRpbmdEaXJlY3Rpb25NZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKSA9IDA7Ci0jaWYgUExBVEZPUk0oTUFD
KQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dGb250cygp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9ycygpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcFNwZWFraW5nKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1
dG9tYXRpY2FsbHkoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3Vic3RpdHV0aW9uc01lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoYm9vbCBzaG93KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcygpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudSgpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0
cmluZyYgcmVwbGFjZWRTdHJpbmcpID0gMDsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2Fy
ZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9M
aW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkgPSAwOwotI2VuZGlmIC8vIEVOQUJM
RShDT05URVhUX01FTlVTKQotCi0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50
U2VhcmNoZXNUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRT
ZWFyY2hlc1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVj
ZW50U2VhcmNoZXNUZXh0KCkgPSAwOwotCi0gICAgdmlydHVhbCBTdHJpbmcgQVhXZWJBcmVhVGV4
dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpbmtUZXh0KCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhJ
bWFnZU1hcFRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhIZWFkaW5nVGV4dCgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWERlZmluaXRpb25MaXN0VGVybVRleHQoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkgPSAwOwot
Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91
cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSkgPSAwOwotI2VuZGlmCi0gICAgCi0gICAgdmly
dHVhbCBTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVGV4
dEZpZWxkQWN0aW9uVmVyYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWENoZWNrZWRDaGVj
a0JveEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhVbmNoZWNrZWRDaGVj
a0JveEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhNZW51TGlzdEFjdGlv
blZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVy
YigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpbmtBY3Rpb25WZXJiKCkgPSAwOwotCi0g
ICAgdmlydHVhbCBTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbXVsdGlw
bGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVzKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKFdJTikK
LSAgICB2aXJ0dWFsIFN0cmluZyB1cGxvYWRGaWxlVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBhbGxGaWxlc1RleHQoKSA9IDA7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAg
ICB2aXJ0dWFsIFN0cmluZyBidWlsdEluUERGUGx1Z2luTmFtZSgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBrZXlnZW5NZW51SXRlbTUxMigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5N
ZW51SXRlbTEwMjQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0yMDQ4
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGtleWdlbktleWNoYWluSXRlbU5hbWUoY29uc3Qg
U3RyaW5nJiBob3N0KSA9IDA7Ci0jZW5kaWYKLQotICAgIHZpcnR1YWwgU3RyaW5nIGltYWdlVGl0
bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgPSAwOwotCi0g
ICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmco
Y29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQpID0gMDsKLQotICAgIHZpcnR1
YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1Rl
eHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJm
bG93VGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBN
aXNtYXRjaFRleHQoKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5Mb2NhbGl6YXRp
b25TdHJhdGVneSgpCi0gICAgewotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQotCi0jZW5kaWYgLy8gTG9jYWxp
emF0aW9uU3RyYXRlZ3lfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcAppbmRleCAxNDA5YmJmMzFiMWFiMmUzYjc0ZWUzNDA1N2I2NGU3ZTgwYmNkZTBjLi5h
NTE0M2FjY2IxNjkxMTNlMzBmNDU1ZjdkOWZhZGYyYTFkNTg1NGE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5LCAyMDEwLCAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
MCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNyw3MTEgKzI3LDkyOSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKIAotI2luY2x1
ZGUgIkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaWYgVVNFKENGKQorI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rl
ck5hbWVzLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFVTRShQTEFU
Rk9STV9TVFJBVEVHSUVTKQorLy8gV2UgY2FuJ3QgdXNlIFN0cmluZzo6Zm9ybWF0IGZvciB0d28g
cmVhc29uczoKKy8vICAxKSBJdCBkb2Vzbid0IGhhbmRsZSBub24tQVNDSUkgY2hhcmFjdGVycyBp
biB0aGUgZm9ybWF0IHN0cmluZy4KKy8vICAyKSBJdCBkb2Vzbid0IGhhbmRsZSB0aGUgJTIkZCBz
eW50YXguCisvLyBOb3RlIHRoYXQgYmVjYXVzZSB8Zm9ybWF0fCBpcyB1c2VkIGFzIHRoZSBzZWNv
bmQgcGFyYW1ldGVyIHRvIHZhX3N0YXJ0LCBpdCBjYW5ub3QgYmUgYSByZWZlcmVuY2UKKy8vIHR5
cGUgYWNjb3JkaW5nIHRvIHNlY3Rpb24gMTguNy8zIG9mIHRoZSBDKysgTjE5MDUgc3RhbmRhcmQu
CitzdGF0aWMgU3RyaW5nIGZvcm1hdExvY2FsaXplZFN0cmluZyhTdHJpbmcgZm9ybWF0LCAuLi4p
Cit7CisjaWYgVVNFKENGKQorICAgIHZhX2xpc3QgYXJndW1lbnRzOworICAgIHZhX3N0YXJ0KGFy
Z3VtZW50cywgZm9ybWF0KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZvcm1hdENGU3Ry
aW5nKEFkb3B0Q0YsIGZvcm1hdC5jcmVhdGVDRlN0cmluZygpKTsKKyAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHJlc3VsdChBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1
bWVudHMoMCwgMCwgZm9ybWF0Q0ZTdHJpbmcuZ2V0KCksIGFyZ3VtZW50cykpOworICAgIHZhX2Vu
ZChhcmd1bWVudHMpOworICAgIHJldHVybiByZXN1bHQuZ2V0KCk7CisjZWxzZQorICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZvcm1hdDsKKyNlbmRpZgorfQogCi1zdGF0aWMgaW5s
aW5lIExvY2FsaXphdGlvblN0cmF0ZWd5KiBsb2NhbGl6YXRpb25TdHJhdGVneSgpCisjaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorc3RhdGljIFN0cmluZyB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShj
b25zdCBTdHJpbmcmIG9yaWdpbmFsKQogewotICAgIGlmIChoYXNQbGF0Zm9ybVN0cmF0ZWdpZXMo
KSkKLSAgICAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJh
dGVneSgpOworICAgIGlmIChvcmlnaW5hbC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBvcmln
aW5hbDsKIAotICAgIHJldHVybiAmRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzaGFyZWQo
KTsKKyAgICAvLyBUcnVuY2F0ZSB0aGUgc3RyaW5nIGlmIGl0J3MgdG9vIGxvbmcuIFRoaXMgaXMg
aW4gY29uc2lzdGVuY3kgd2l0aCBBcHBLaXQuCisgICAgdW5zaWduZWQgbWF4TnVtYmVyT2ZHcmFw
aGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51SXRlbSA9IDI0OworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBlbGxpcHNpcywgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKworICAgIFN0
cmluZyB0cmltbWVkID0gb3JpZ2luYWwuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgdW5zaWduZWQg
bnVtYmVyT2ZDaGFyYWN0ZXJzID0gbnVtQ2hhcmFjdGVyc0luR3JhcGhlbWVDbHVzdGVycyh0cmlt
bWVkLCBtYXhOdW1iZXJPZkdyYXBoZW1lQ2x1c3RlcnNJbkxvb2t1cE1lbnVJdGVtKTsKKyAgICBy
ZXR1cm4gbnVtYmVyT2ZDaGFyYWN0ZXJzID09IHRyaW1tZWQubGVuZ3RoKCkgPyB0cmltbWVkIDog
dHJpbW1lZC5sZWZ0KG51bWJlck9mQ2hhcmFjdGVycykgKyBlbGxpcHNpczsKIH0KKyNlbmRpZgog
CiBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmlucHV0RWxlbWVudEFsdFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIlN1Ym1pdCIsICJTdWJtaXQgKGlucHV0IGVsZW1lbnQpIiwgImFsdCB0ZXh0IGZv
ciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8gYWx0LCB0aXRsZSwgb3IgdmFsdWUiKTsKIH0KIAog
U3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVzZXQgYnV0dG9ucyBpbiBm
b3JtcyBvbiB3ZWIgcGFnZXMiKTsKIH0KIAogU3RyaW5nIHNlYXJjaGFibGVJbmRleEludHJvZHVj
dGlvbigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaGFibGVJ
bmRleEludHJvZHVjdGlvbigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJUaGlzIGlzIGEg
c2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICJ0ZXh0IHRoYXQgYXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9i
c29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOwog
fQogCiBTdHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlN1Ym1pdCIsICJkZWZhdWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0
dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKIH0KIAogU3RyaW5nIGZpbGVCdXR0b25DaG9v
c2VGaWxlTGFiZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5maWxl
QnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29z
ZSBGaWxlIiwgInRpdGxlIGZvciBhIHNpbmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4g
SFRNTCBmb3JtcyIpOwogfQogCiBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNM
YWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hv
b3NlIEZpbGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNl
ZCBpbiBIVE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJs
ZS4iKTsKIH0KIAogU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVk
TGFiZWwoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0
ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8g
ZmlsZSBpcyBzZWxlY3RlZCIpOwogfQogCiBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3Rl
ZExhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRv
bk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5vIGZp
bGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhU
TUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dz
IG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7CiB9CiAKIFN0cmluZyBkZWZhdWx0RGV0
YWlsc1N1bW1hcnlUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJE
ZXRhaWxzIiwgInRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5v
IDxzdW1tYXJ5PiBjaGlsZCIpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQogU3RyaW5nIGNvcHlJ
bWFnZVVua25vd25GaWxlTGFiZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInVua25vd24iLCAiVW5rbm93biBmaWxlbmFtZSIpOwogfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3
V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJE
b3dubG9hZCBMaW5rZWQgRmlsZSIsICJEb3dubG9hZCBMaW5rZWQgRmlsZSBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2Fy
ZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRl
bVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29w
eSBMaW5rIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRv
dygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3ci
LCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFn
ZVRvRGlzaygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJE
b3dubG9hZCBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDb3B5IEltYWdlIiwgIkNvcHkgSW1hZ2UgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKEVGTCkKLVN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0Ns
aXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Ci19Ci0jZW5kaWYKLQogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBGcmFtZSBpbiBOZXcgV2lu
ZG93IiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiQ29weSIsICJDb3B5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTdG9wIiwgIlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJSZWxvYWQiLCAiUmVsb2FkIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDdXQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiQ3V0IiwgIkN1dCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnUGFzdGUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXN0
ZSIsICJQYXN0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oUVQpCiBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCk7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gIlNlbGVjdCBBbGwiOwogfQogI2VuZGlmCiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8gR3Vlc3Nl
cyBGb3VuZCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnSWdub3JlU3BlbGxpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJJZ25vcmUgU3BlbGxpbmciLCAiSWdub3JlIFNwZWxsaW5nIGNvbnRleHQgbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTGVh
cm5TcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMZWFybiBTcGVsbGluZyIs
ICJMZWFybiBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0o
TUFDKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
SW5TcG90bGlnaHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VhcmNoIGluIFNwb3Rs
aWdodCIsICJTZWFyY2ggaW4gU3BvdGxpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAjZW5k
aWYKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpOwor
I2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gc2VhcmNoUHJvdmlkZXJOYW1lKEFkb3B0Q0YsIHdrQ29weURlZmF1bHRTZWFyY2hQcm92aWRl
ckRpc3BsYXlOYW1lKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJ
X1NUUklORygiU2VhcmNoIHdpdGggJUAiLCAiU2VhcmNoIHdpdGggc2VhcmNoIHByb3ZpZGVyIGNv
bnRleHQgbWVudSBpdGVtIHdpdGggcHJvdmlkZXIgbmFtZSBpbnNlcnRlZCIpLCBzZWFyY2hQcm92
aWRlck5hbWUuZ2V0KCkpOworI2Vsc2UKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VhcmNo
IHdpdGggR29vZ2xlIiwgIlNlYXJjaCB3aXRoIEdvb2dsZSBjb250ZXh0IG1lbnUgaXRlbSIpOwor
I2VuZGlmCiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnko
Y29uc3QgU3RyaW5nJiBzZWxlY3RlZFN0cmluZykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KHNlbGVjdGVk
U3RyaW5nKTsKKyNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIFVOVVNFRF9QQVJBTShzZWxlY3RlZFN0cmluZyk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIsICJMb29r
IFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKKyNlbHNlCisjaWYgVVNFKENG
KQorICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VsZWN0ZWRDRlN0cmluZyhBZG9wdENGLCB0
cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmluZykuY3JlYXRlQ0ZT
dHJpbmcoKSk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5H
KCJMb29rIFVwIOKAnCVA4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxl
Y3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOworI2Vsc2UKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiTG9vayBVcCDigJw8c2VsZWN0aW9uPuKAnSIsICJMb29rIFVwIGNvbnRl
eHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLnJlcGxhY2UoIjxzZWxlY3Rpb24+Iiwg
dHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpKTsKKyNlbmRp
ZgorI2VuZGlmCiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5M
aW5rKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gTGluayIsICJPcGVuIExpbmsg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9y
ZUdyYW1tYXIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkln
bm9yZSBHcmFtbWFyIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAiU3BlbGxp
bmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1Bh
bmVsKHNob3cpOworICAgIGlmIChzaG93KQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
U2hvdyBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0g
dGl0bGUiKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdD
aGVja1NwZWxsaW5nKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIERvY3VtZW50
IE5vdyIsICJDaGVjayBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGlu
Z1doaWxlVHlwaW5nKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIFNwZWxsaW5n
IFdoaWxlIFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaGVjayBHcmFtbWFyIFdpdGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRo
IHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdGb250TWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZv
bnQiLCAiRm9udCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1B
QykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiU2hvdyBGb250cyIsICJTaG93IGZvbnRzIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAjZW5kaWYKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0JvbGQo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdCb2xkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJvbGQiLCAiQm9sZCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSXRh
bGljKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1VuZGVybGluZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJVbmRlcmxpbmUiLCAiVW5k
ZXJsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPdXRsaW5lKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnT3V0bGluZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPdXRsaW5l
IiwgIk91dGxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiU3R5bGVzLi4uIiwgIlN0eWxlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9ycygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1l
bnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdTcGVlY2hNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWVjaCIsICJT
cGVlY2ggY29udGV4dCBzdWItbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTdGFydFNwZWFraW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTdGFydCBTcGVha2luZyIsICJTdGFydCBzcGVha2luZyBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcFNwZWFraW5nKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3RvcFNw
ZWFraW5nKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0b3AgU3BlYWtpbmciLCAiU3Rv
cCBzcGVha2luZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhcmFncmFwaCBEaXJlY3Rpb24iLCAiUGFy
YWdyYXBoIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VsZWN0aW9uIERpcmVjdGlvbiIsICJTZWxlY3Rp
b24gZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRGVmYXVsdCIsICJEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9u
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0
VG9SaWdodCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxlZnQg
dG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExlZnQgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdB
dXRvbWF0aWNhbGx5KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxp
bmcgQXV0b21hdGljYWxseSIsICJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlv
bnNNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
U3Vic3RpdHV0aW9ucyIsICJTdWJzdGl0dXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwog
fQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoYm9vbCBzaG93
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdTaG93U3Vic3RpdHV0aW9ucyhzaG93KTsKKyAgICBpZiAoc2hvdykKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNob3cgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSGlkZSBTdWJzdGl0dXRpb25zIiwgIm1lbnUgaXRl
bSB0aXRsZSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdTbWFydENvcHlQYXN0ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBDb3B5
L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgUXVvdGVzIiwgIlNtYXJ0IFF1b3RlcyBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdTbWFydERhc2hlcygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBEYXNoZXMi
LCAiU21hcnQgRGFzaGVzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTbWFydExpbmtzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTbWFydCBMaW5rcyIsICJTbWFydCBMaW5rcyBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxh
Y2VtZW50KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRleHQgUmVwbGFjZW1lbnQiLCAi
VGV4dCBSZXBsYWNlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVHJhbnNmb3JtYXRpb25zIiwgIlRyYW5zZm9ybWF0
aW9ucyBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ01ha2VVcHBlckNhc2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIk1ha2UgVXBwZXIgQ2FzZSIsICJNYWtlIFVwcGVyIENhc2UgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNYWtl
TG93ZXJDYXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk1ha2UgTG93ZXIgQ2FzZSIs
ICJNYWtlIExvd2VyIENhc2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NhcGl0YWxpemUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNhcGl0YWxpemUiLCAiQ2FwaXRhbGl6ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJl
cGxhY2VkU3RyaW5nKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKHJlcGxhY2VkU3RyaW5nKTsKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiByZXBsYWNlZFN0cmluZzsKIH0KIAogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3Bl
biBWaWRlbyBpbiBOZXcgV2luZG93IiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5O
ZXdXaW5kb3coKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBWaWRlbyBBZGRyZXNzIiwgIkNvcHkgVmlkZW8gQWRk
cmVzcyBMb2NhdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJv
YXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJD
b3B5IEF1ZGlvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENv
bnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUxvb3AoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiTG9vcCIsICJNZWRpYSBMb29wIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4i
LCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlBsYXkiLCAiTWVkaWEgUGxheSBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGF1c2UiLCAiTWVkaWEgUGF1c2UgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhTXV0ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNdXRlIiwgIk1lZGlhIE11dGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KICAgICAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJ
bnNwZWN0RWxlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkluc3BlY3QgRWxlbWVudCIsICJJbnNwZWN0IEVsZW1lbnQgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQogCiBTdHJpbmcgc2VhcmNo
TWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Igb25seSBpdGVtIGlu
IG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFn
ZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7CiB9CiAKLVN0cmluZyBz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0ICgpCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNl
YXJjaGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJj
aE1lbnVSZWNlbnRTZWFyY2hlc1RleHQgKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJl
Y2VudCBTZWFyY2hlcyIsICJsYWJlbCBmb3IgZmlyc3QgaXRlbSBpbiB0aGUgbWVudSB0aGF0IGFw
cGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB1c2VkIGFzIGVt
YmVkZGVkIG1lbnUgdGl0bGUiKTsKIH0KIAogU3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNl
YXJjaGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJj
aE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJDbGVhciBSZWNlbnQgU2VhcmNoZXMiLCAibWVudSBpdGVtIGluIFJlY2VudCBTZWFyY2hlcyBt
ZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMiKTsKIH0KIAogU3RyaW5nIEFYV2ViQXJl
YVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWFdlYkFyZWFU
ZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhUTUwgY29udGVudCIsICJhY2Nlc3Np
YmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHdlYiBhcmVhIik7CiB9CiAKIFN0cmluZyBBWExp
bmtUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhMaW5rVGV4
dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJsaW5rIiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3IgbGluayIpOwogfQogCiBTdHJpbmcgQVhMaXN0TWFya2VyVGV4dCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTGlzdE1hcmtlclRleHQo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygibGlzdCBtYXJrZXIiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaXN0IG1hcmtlciIpOwogfQogCiBTdHJpbmcgQVhJbWFn
ZU1hcFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWEltYWdl
TWFwVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJpbWFnZSBtYXAiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBpbWFnZSBtYXAiKTsKIH0KIAogU3RyaW5nIEFY
SGVhZGluZ1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWEhl
YWRpbmdUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImhlYWRpbmciLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoZWFkaW5ncyIpOwogfQogCiBTdHJpbmcgQVhE
ZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInRlcm0iLCAidGVybSB3b3JkIG9mIGEgZGVmaW5pdGlvbiIpOwogfQogCiBTdHJpbmcgQVhE
ZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImRlZmluaXRpb24iLCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKIH0KIAog
I2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0
cmluZyYgYXJpYVR5cGUpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFY
QVJJQUNvbnRlbnRHcm91cFRleHQoYXJpYVR5cGUpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJ
QUFwcGxpY2F0aW9uQWxlcnQiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQi
LCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydC4iKTsK
KyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IGRpYWxvZyIsICJBbiBBUklBIGFjY2Vzc2li
aWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFsZXJ0IGRpYWxvZy4iKTsKKyAgICBpZiAoYXJp
YVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkRpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBh
cyBhbiBkaWFsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25Mb2ci
KQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBjb25zb2xlIGxvZy4iKTsKKyAgICBpZiAoYXJpYVR5
cGUgPT0gIkFSSUFBcHBsaWNhdGlvbk1hcnF1ZWUiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibWFycXVlZSIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFz
IGEgbWFycXVlZS4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvblN0YXR1
cyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBsaWNhdGlvbiBzdGF0dXMiLCAi
QW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHN0YXR1cyB1cGRhdGUu
Iik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25UaW1lciIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3Jv
dXAgdGhhdCBhY3RzIGFzIGFuIHVwZGF0aW5nIHRpbWVyLiIpOworICAgIGlmIChhcmlhVHlwZSA9
PSAiQVJJQURvY3VtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRvY3VtZW50
IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkb2N1bWVudC4i
KTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudEFydGljbGUiKQorICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiYXJ0aWNsZSIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3Jv
dXAgdGhhdCBhY3RzIGFzIGFuIGFydGljbGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklB
RG9jdW1lbnROb3RlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5vdGUiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG5vdGUgaW4gYSBkb2N1bWVu
dC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudFJlZ2lvbiIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJyZWdpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdy
b3VwIHRoYXQgYWN0cyBhcyBhIGRpc3RpbmN0IHJlZ2lvbiBpbiBhIGRvY3VtZW50LiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQXBwbGljYXRpb24iKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiYXBwbGljYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdy
b3VwIHRoYXQgYWN0cyBhcyBhbiBhcHBsaWNhdGlvbi4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0g
IkFSSUFMYW5kbWFya0Jhbm5lciIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiYW5u
ZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGJhbm5lci4i
KTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0NvbXBsZW1lbnRhcnkiKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY29tcGxlbWVudGFyeSIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgcmVnaW9uIG9mIGNvbXBsZW1lbnRhcnkgaW5m
b3JtYXRpb24uIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtDb250ZW50SW5m
byIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjb250ZW50IiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIGNvbnRlbnQuIik7CisgICAgaWYgKGFyaWFU
eXBlID09ICJBUklBTGFuZG1hcmtNYWluIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Im1haW4iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9y
dGlvbiBvZiB0aGUgd2Vic2l0ZS4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFy
a05hdmlnYXRpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibmF2aWdhdGlvbiIs
ICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyB0aGUgbWFpbiBuYXZp
Z2F0aW9uIGVsZW1lbnRzIG9mIGEgd2Vic2l0ZS4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFS
SUFMYW5kbWFya1NlYXJjaCIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWFyY2gi
LCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgYSBzZWFyY2ggZmVh
dHVyZSBvZiBhIHdlYnNpdGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVy
ZmFjZVRvb2x0aXAiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJB
biBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsKKyAg
ICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFUYWJQYW5lbCIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJ0YWIgcGFuZWwiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29u
dGFpbnMgdGhlIGNvbnRlbnQgb2YgYSB0YWIuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklB
RG9jdW1lbnRNYXRoIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hdGgiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgbWF0aGVtYXRpY2FsIHN5bWJv
bHMuIik7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogI2VuZGlmCiAgICAgCiBTdHJpbmcgQVhC
dXR0b25BY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
QVhCdXR0b25BY3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInByZXNzIiwg
IlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgYnV0dG9uIGlz
IHByZXNzZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhSYWRp
b0J1dHRvbkFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5BWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJz
ZWxlY3QiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBy
YWRpbyBidXR0b24gaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAK
IFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5BWFRleHRGaWVsZEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiYWN0aXZhdGUiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9j
Y3VyIHdoZW4gYSB0ZXh0IGZpZWxkIGlzIHNlbGVjdGVkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxp
dHkiKTsKIH0KIAogU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
YigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0
aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlj
a2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYVW5jaGVja2Vk
Q2hlY2tCb3hBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiY2hlY2siLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdo
ZW4gYW4gdW5jaGVja2VkIGNoZWNrYm94IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJp
bGl0eSIpOwogfQogCiBTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTGlua0FjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygianVtcCIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2Nj
dXIgd2hlbiBhIGxpbmsgaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9
CiAKIFN0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpOworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJzZWxlY3QiOwogfQogCiBTdHJpbmcgQVhNZW51
TGlzdEFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5B
WE1lbnVMaXN0QWN0aW9uVmVyYigpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
ICJzZWxlY3QiOwogfQogCiBTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5taXNzaW5nUGx1Z2luVGV4dCgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJNaXNzaW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2Vk
IHdoZW4gYSBwbHVnaW4gaXMgbWlzc2luZyIpOwogfQogCiBTdHJpbmcgY3Jhc2hlZFBsdWdpblRl
eHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jcmFzaGVkUGx1Z2lu
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbHVnLWluIEZhaWx1cmUiLCAiTGFi
ZWwgdGV4dCB0byBiZSB1c2VkIGlmIHBsdWdpbiBob3N0IHByb2Nlc3MgaGFzIGNyYXNoZWQiKTsK
IH0KIAogU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVtYmVyT2ZGaWxl
cykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bXVsdGlwbGVGaWxlVXBs
b2FkVGV4dChudW1iZXJPZkZpbGVzKTsKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFdFQl9VSV9TVFJJTkcoIiVkIGZpbGVzIiwgIkxhYmVsIHRvIGRlc2NyaWJlIHRoZSBudW1iZXIg
b2YgZmlsZXMgc2VsZWN0ZWQgaW4gYSBmaWxlIHVwbG9hZCBjb250cm9sIHRoYXQgYWxsb3dzIG11
bHRpcGxlIGZpbGVzIiksIG51bWJlck9mRmlsZXMpOwogfQogCiBTdHJpbmcgdW5rbm93bkZpbGVT
aXplVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnVua25vd25G
aWxlU2l6ZVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVW5rbm93biIsICJVbmtu
b3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlzdGluZyBpdGVtIik7CiB9CiAKICNpZiBQTEFU
Rk9STShXSU4pCiBTdHJpbmcgdXBsb2FkRmlsZVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT51cGxvYWRGaWxlVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuICJ1cGxvYWQiOwogfQogCiBTdHJpbmcgYWxsRmlsZXNUZXh0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+YWxsRmlsZXNUZXh0KCk7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gImFsbCBmaWxlcyI7CiB9CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKE1BQykKIFN0cmluZyBidWlsdEluUERGUGx1Z2luTmFtZSgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmJ1aWx0SW5QREZQbHVnaW5OYW1lKCk7CisgICAg
Ly8gQWxzbyBleHBvc2VkIHRvIERPTS4KKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0
IGJ1aWx0LWluIFBERiIsICJQc2V1ZG8gcGx1Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxl
ZCBQbHVnLWlucyBwYWdlIGluIFNhZmFyaS4iKTsKIH0KIAogU3RyaW5nIHBkZkRvY3VtZW50VHlw
ZURlc2NyaXB0aW9uKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+cGRm
RG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKTsKKyAgICAvLyBBbHNvIGV4cG9zZWQgdG8gRE9NLgor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQb3J0YWJsZSBEb2N1bWVudCBGb3JtYXQiLCAiRGVz
Y3JpcHRpb24gb2YgdGhlIChvbmx5KSB0eXBlIHN1cHBvcnRlZCBieSBQREYgcHNldWRvIHBsdWct
aW4uIFZpc2libGUgaW4gSW5zdGFsbGVkIFBsdWctaW5zIHBhZ2UgaW4gU2FmYXJpLiIpOwogfQog
CiBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5rZXlnZW5NZW51SXRlbTUxMigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCI1MTIgKExvdyBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1l
bnUiKTsKIH0KIAogU3RyaW5nIGtleWdlbk1lbnVJdGVtMTAyNCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmtleWdlbk1lbnVJdGVtMTAyNCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCIxMDI0IChNZWRpdW0gR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3Ig
S0VZR0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXlnZW5NZW51SXRlbTIwNDgo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMjA0OCAoSGlnaCBHcmFkZSkiLCAiTWVudSBp
dGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsKIH0KIAogU3RyaW5nIGtleWdlbktl
eWNoYWluSXRlbU5hbWUoY29uc3QgU3RyaW5nJiBob3N0KQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5rZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGhvc3QpOworICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gaG9zdENGU3RyaW5nKEFkb3B0Q0YsIGhvc3QuY3JlYXRlQ0ZTdHJp
bmcoKSk7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJL
ZXkgZnJvbSAlQCIsICJOYW1lIG9mIGtleWNoYWluIGtleSBnZW5lcmF0ZWQgYnkgdGhlIEtFWUdF
TiB0YWciKSwgaG9zdENGU3RyaW5nLmdldCgpKTsKIH0KIAogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShJT1MpCitTdHJpbmcgaHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90IGNvdW50KQorewor
ICAgIHN3aXRjaCAoY291bnQpIHsKKyAgICBjYXNlIDA6CisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBtdWx0aXBsZT4g
d2hlbiBubyA8b3B0aW9uPiBpdGVtcyBhcmUgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOworICAgIGNh
c2UgMToKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEgSXRlbSIsICJQcmVzZW50IHRo
ZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gYSBzaW5nbGUgPG9wdGlvbj4gaXMgc2Vs
ZWN0ZWQgKGlPUyBvbmx5KSIpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJXp1IEl0ZW1zIiwgIlByZXNlbnQgdGhlIG51
bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9uPiBpdGVtcyBpbiBhIDxzZWxlY3QgbXVsdGlwbGU+IGVs
ZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3VudCk7CisgICAgfQorfQorI2VuZGlmCisKIFN0cmluZyBp
bWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmltYWdlVGl0bGUoZmlsZW5hbWUs
IHNpemUpOworI2lmIFVTRShDRikKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQor
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmlsZW5hbWVDRlN0cmluZyhBZG9wdENGLCBmaWxl
bmFtZS5jcmVhdGVDRlN0cmluZygpKTsKKyAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGxvY2Fs
ZShBZG9wdENGLCBDRkxvY2FsZUNvcHlDdXJyZW50KCkpOworICAgIFJldGFpblB0cjxDRk51bWJl
ckZvcm1hdHRlclJlZj4gZm9ybWF0dGVyKEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRl
KDAsIGxvY2FsZS5nZXQoKSwga0NGTnVtYmVyRm9ybWF0dGVyRGVjaW1hbFN0eWxlKSk7CisKKyAg
ICBpbnQgd2lkdGhJbnQgPSBzaXplLndpZHRoKCk7CisgICAgUmV0YWluUHRyPENGTnVtYmVyUmVm
PiB3aWR0aChBZG9wdENGLCBDRk51bWJlckNyZWF0ZSgwLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmd2lk
dGhJbnQpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHdpZHRoU3RyaW5nKEFkb3B0Q0Ys
IENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0
KCksIHdpZHRoLmdldCgpKSk7CisKKyAgICBpbnQgaGVpZ2h0SW50ID0gc2l6ZS5oZWlnaHQoKTsK
KyAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+IGhlaWdodChBZG9wdENGLCBDRk51bWJlckNyZWF0
ZSgwLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmaGVpZ2h0SW50KSk7CisgICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBoZWlnaHRTdHJpbmcoQWRvcHRDRiwgQ0ZOdW1iZXJGb3JtYXR0ZXJDcmVhdGVTdHJp
bmdXaXRoTnVtYmVyKDAsIGZvcm1hdHRlci5nZXQoKSwgaGVpZ2h0LmdldCgpKSk7CisKKyAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiVAICVAw5clQCBwaXhl
bHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGlj
YXRpb24gc3ltYm9sLCBub3QgeCkiKSwgZmlsZW5hbWVDRlN0cmluZy5nZXQoKSwgd2lkdGhTdHJp
bmcuZ2V0KCksIGhlaWdodFN0cmluZy5nZXQoKSk7CisjZWxzZQorICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gZmlsZW5hbWVDRlN0cmluZyhBZG9wdENGLCBmaWxlbmFtZS5jcmVhdGVDRlN0cmlu
ZygpKTsKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiVA
ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVz
ZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgZmlsZW5hbWVDRlN0cmluZy5nZXQo
KSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKyNlbmRpZgorI2Vsc2UKKyAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIjxmaWxlbmFtZT4gJWTDlyVk
IHBpeGVscyIsICJ3aW5kb3cgdGl0bGUgZm9yIGEgc3RhbmRhbG9uZSBpbWFnZSAodXNlcyBtdWx0
aXBsaWNhdGlvbiBzeW1ib2wsIG5vdCB4KSIpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkp
LnJlcGxhY2UoIjxmaWxlbmFtZT4iLCBmaWxlbmFtZSk7CisjZW5kaWYKIH0KIAogU3RyaW5nIG1l
ZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5tZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkxvYWRpbmcuLi4iLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2Fn
ZSB3aGVuIHRoZSBtZWRpYSBpcyBsb2FkaW5nIik7CiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRM
aXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+bWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJMaXZlIEJyb2FkY2FzdCIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBt
ZXNzYWdlIHdoZW4gd2F0Y2hpbmcgYSBsaXZlIGJyb2FkY2FzdCIpOwogfQogCi1TdHJpbmcgbG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIGNvbnRyb2xOYW1l
KQorU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5n
JiBuYW1lKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5sb2NhbGl6ZWRN
ZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnRyb2xOYW1lKTsKKyAgICBpZiAobmFtZSA9PSAi
QXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImF1ZGlvIGVsZW1l
bnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGF1ZGlv
IGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQor
ICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidmlkZW8gZWxlbWVudCBjb250cm9sbGVyIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9s
bGVyIik7CisgICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygibXV0ZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIG11
dGUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0
aW9uIGZvciB0dXJuIG11dGUgb2ZmIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJQbGF5QnV0
dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBsYXkiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBwbGF5IGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJQ
YXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXVzZSIsICJhY2Nl
c3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHBhdXNlIGJ1dHRvbiIpOworICAgIGlmIChu
YW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibW92aWUgdGlt
ZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHRpbWVsaW5lIHNsaWRlciIp
OworICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJ0aW1lbGluZSBzbGlkZXIgdGh1bWIiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciB0aW1lbGluZSB0aHVtYiIpOworICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0
b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYmFjayAzMCBzZWNvbmRzIiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Igc2VlayBiYWNrIDMwIHNlY29uZHMgYnV0
dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHRvIHJlYWx0aW1lIiwgImFjY2Vzc2liaWxp
dHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcmV0dXJuIHRvIHJlYWwgdGltZSBidXR0b24iKTsKKyAg
ICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImVsYXBzZWQgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIGVsYXBzZWQgdGltZSBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5p
bmdEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJlbWFpbmluZyB0aW1l
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZSByZW1haW5pbmcgZGlz
cGxheSIpOworICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInN0YXR1cyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIG1vdmllIHN0YXR1cyIpOworICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImZ1bGxzY3JlZW4iLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlm
IChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJmYXN0IGZvcndhcmQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBm
YXN0IGZvcndhcmQgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImZhc3QgcmV2ZXJzZSIsICJhY2Nlc3NpYmls
aXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGZhc3QgcmV2ZXJzZSBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInNob3cgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNj
cmlwdGlvbiBmb3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisgICAgaWYgKG5hbWUg
PT0gIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJoaWRlIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIGhpZGUgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworCisgICAgLy8gRklYTUU6IHRo
ZSBDb250cm9sc1BhbmVsIGNvbnRhaW5lciBzaG91bGQgbmV2ZXIgYmUgdmlzaWJsZSBpbiB0aGUg
YWNjZXNzaWJpbGl0eSBoaWVyYXJjaHkuCisgICAgaWYgKG5hbWUgPT0gIkNvbnRyb2xzUGFuZWwi
KQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xF
bGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6
ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5sb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50SGVscFRleHQoY29udHJvbE5hbWUpOworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQi
KQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXVkaW8gZWxlbWVudCBwbGF5YmFjayBj
b250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0
aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiVmlk
ZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInZpZGVvIGVsZW1lbnQg
cGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9sbGVyIik7CisgICAgaWYgKG5h
bWUgPT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibXV0ZSBh
dWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG11dGUgYnV0dG9uIik7
CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciB1biBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJlZ2luIHBsYXliYWNrIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRv
biIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXVzZSBwbGF5YmFjayIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGF1c2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0g
IlNsaWRlciIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtb3ZpZSB0aW1lIHNjcnVi
YmVyIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0aW1lbGluZSBzbGlkZXIiKTsKKyAg
ICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygibW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRv
biIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIG1vdmllIGJhY2sgMzAgc2Vj
b25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IganVtcCBiYWNrIDMwIHNlY29uZHMg
YnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFs
IHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHJldHVybiBzdHJlYW1pbmcgbW92
aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURp
c3BsYXkiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY3VycmVudCBtb3ZpZSB0aW1l
IGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGVsYXBzZWQgdGltZSBk
aXNwbGF5Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm51bWJlciBvZiBzZWNvbmRzIG9mIG1vdmllIHJlbWFp
bmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcmVtYWluaW5nIHRpbWUgZGlzcGxh
eSIpOworICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgc3RhdHVzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJTZWVrQmFj
a0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgYmFj
ayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCByZXdpbmQgYnV0dG9uIik7Cisg
ICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInNlZWsgcXVpY2tseSBmb3J3YXJkIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5C
dXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGxheSBtb3ZpZSBpbiBmdWxs
c2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGVudGVyIGZ1bGxzY3Jl
ZW4gYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGFydCBkaXNwbGF5aW5nIGNsb3NlZCBj
YXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Igc2hvdyBjbG9zZWQgY2FwdGlv
bnMgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdG9wIGRpc3BsYXlpbmcgY2xvc2VkIGNh
cHRpb25zIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBoaWRlIGNsb3NlZCBjYXB0aW9u
cyBidXR0b24iKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAogU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRp
bWUpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmxvY2FsaXplZE1lZGlh
VGltZURlc2NyaXB0aW9uKHRpbWUpOworICAgIGlmICghaXNmaW5pdGUodGltZSkpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJpbmRlZmluaXRlIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIGFuIGluZGVmaW5pdGUgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlIik7
CisKKyAgICBpbnQgc2Vjb25kcyA9IHN0YXRpY19jYXN0PGludD4oZmFic2YodGltZSkpOworICAg
IGludCBkYXlzID0gc2Vjb25kcyAvICg2MCAqIDYwICogMjQpOworICAgIGludCBob3VycyA9IHNl
Y29uZHMgLyAoNjAgKiA2MCk7CisgICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYw
OworICAgIHNlY29uZHMgJT0gNjA7CisKKyAgICBpZiAoZGF5cykKKyAgICAgICAgcmV0dXJuIGZv
cm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIGRheXMgJTIkZCBob3VycyAl
MyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBt
ZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gMSBkYXkiKSwgZGF5cywgaG91cnMsIG1pbnV0
ZXMsIHNlY29uZHMpOworICAgIGlmIChob3VycykKKyAgICAgICAgcmV0dXJuIGZvcm1hdExvY2Fs
aXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIGhvdXJzICUyJGQgbWludXRlcyAlMyRkIHNl
Y29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGlt
ZSB2YWx1ZSA+PSA2MCBtaW51dGVzIiksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBp
ZiAobWludXRlcykKKyAgICAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCIlMSRkIG1pbnV0ZXMgJTIkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgc2Vjb25kcyIpLCBtaW51
dGVzLCBzZWNvbmRzKTsKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9T
VFJJTkcoIiUxJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEg
Y29udHJvbGxlciB0aW1lIHZhbHVlIDwgNjAgc2Vjb25kcyIpLCBzZWNvbmRzKTsKIH0KIAogU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24g
bWVzc2FnZSBmb3IgcmVxdWlyZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2
YWx1ZSIpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JDaGVj
a2JveFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3Nh
Z2VWYWx1ZU1pc3NpbmdUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ0ZvckZpbGVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlk
YXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VWYWx1ZU1pc3NpbmdGb3JNdWx0aXBsZUZpbGVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7
CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JSYWRpb1RleHQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0
KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclNlbGVjdFRl
eHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1
ZU1pc3NpbmdUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRj
aFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidHlw
ZSBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
d2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAg
IHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKIH0KIAogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hU
ZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRl
eHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNt
YXRjaFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0g
Y29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRl
cm4iKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdl
VG9vTG9uZ1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vIGxvbmciLCAiVmFs
aWRhdGlvbiBtZXNzYWdlIGZvciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxv
bmdlciB0aGFuIG1heGltdW0gYWxsb3dlZCBsZW5ndGgiKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dU
ZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJhbmdlIHVuZGVyZmxvdyIsICJWYWxp
ZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBsb3dlciB0
aGFuIGFsbG93ZWQgbWluaW11bSIpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInJhbmdlIG92ZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBm
b3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGhpZ2hlciB0aGFuIGFsbG93ZWQgbWF4
aW11bSIpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpOwotfQotCi0jZW5k
aWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0KLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oV0lOKQotU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCi17
Ci0gICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInN0ZXAgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZv
ciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbm90IHJlc3BlY3RpbmcgdGhlIHN0ZXAg
YXR0cmlidXRlIik7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IGE3M2M5OTFmZWRhOTdl
ZTk5YjlhZmUyODdjNWM2MGI2MzFhNzM1MmEuLjUzMmVhMWM3YmUxMzAwOWM4Mjk2N2RiODIwYzc2
ZDQ3NzdlMmIzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmgKQEAgLTE3NCw2ICsxNzQsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBr
ZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCk7CiAjZW5kaWYKIAorI2lm
IFBMQVRGT1JNKElPUykKKyAgICBTdHJpbmcgaHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90
IG51bSk7CisjZW5kaWYKKwogICAgIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpOwogCiAgICAgU3RyaW5nIG1lZGlhRWxlbWVudExv
YWRpbmdTdGF0ZVRleHQoKTsKQEAgLTE5OCwxMSArMjAyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBT
dHJpbmcmIG1heGltdW0pOwogICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRj
aFRleHQoY29uc3QgU3RyaW5nJiBiYXNlLCBjb25zdCBTdHJpbmcmIHN0ZXApOwogCi0KKyNpZiBQ
TEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTikKICNkZWZpbmUgV0VCX1VJX1NUUklORyhzdHJp
bmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoc3RyaW5nKQogI2RlZmlu
ZSBXRUJfVUlfU1RSSU5HX0tFWShzdHJpbmcsIGtleSwgZGVzY3JpcHRpb24pIFdlYkNvcmU6Omxv
Y2FsaXplZFN0cmluZyhrZXkpCiAKICAgICBTdHJpbmcgbG9jYWxpemVkU3RyaW5nKGNvbnN0IGNo
YXIqIGtleSk7CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggZGM5ZmMzNWE3MGU5M2NlNjQzOWY3YmE3MzNmNDRkM2Qy
NzYzYzc0YS4uNjQzZjM3NTA1OGVjYjgzMGJiNTdkNTBlOTJjZGQ2NTkwM2IxNjIzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0yOSw4
ICsyOSw2IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKIAotI2luY2x1ZGUg
IkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHN0YXRpYyBQbGF0Zm9ybVN0cmF0ZWdpZXMqIHNfcGxhdGZvcm1TdHJhdGVnaWVzOwpAQCAtNTks
MTEgKzU3LDYgQEAgYm9vbCBoYXNQbGF0Zm9ybVN0cmF0ZWdpZXMoKQogICAgIHJldHVybiBzX3Bs
YXRmb3JtU3RyYXRlZ2llczsKIH0KIAotTG9jYWxpemF0aW9uU3RyYXRlZ3kqIFBsYXRmb3JtU3Ry
YXRlZ2llczo6Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKQotewotICAgIHJldHVybiBuZXcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggNzQ4MmQ2MDA1ZmYwNjNkNjVmYzA3
N2ZiYjhhYTFkNGQxNWRjYjM3Yi4uMTRlOGM0Y2ZlNjA3YTM3MTJmMzYxNTc5MjE4MTg5MzJhOGI0
ZDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVn
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgK
QEAgLTMyLDcgKzMyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb29raWVzU3Ry
YXRlZ3k7CiBjbGFzcyBQbHVnaW5TdHJhdGVneTsKLWNsYXNzIExvY2FsaXphdGlvblN0cmF0ZWd5
OwogY2xhc3MgVmlzaXRlZExpbmtTdHJhdGVneTsKIAogY2xhc3MgUGxhdGZvcm1TdHJhdGVnaWVz
IHsKQEAgLTUxLDEzICs1MCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fcGx1Z2luU3Ry
YXRlZ3k7CiAgICAgfQogCi0gICAgTG9jYWxpemF0aW9uU3RyYXRlZ3kqIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9sb2NhbGl6YXRpb25TdHJhdGVneSkKLSAg
ICAgICAgICAgIG1fbG9jYWxpemF0aW9uU3RyYXRlZ3kgPSBjcmVhdGVMb2NhbGl6YXRpb25TdHJh
dGVneSgpOwotICAgICAgICByZXR1cm4gbV9sb2NhbGl6YXRpb25TdHJhdGVneTsKLSAgICB9Ci0K
ICAgICBWaXNpdGVkTGlua1N0cmF0ZWd5KiB2aXNpdGVkTGlua1N0cmF0ZWd5KCkKICAgICB7CiAg
ICAgICAgIGlmICghbV92aXNpdGVkTGlua1N0cmF0ZWd5KQpAQCAtNjksNyArNjEsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgUGxhdGZvcm1TdHJhdGVnaWVzKCkKICAgICAgICAgOiBtX2Nvb2tpZXNTdHJh
dGVneSgwKQogICAgICAgICAsIG1fcGx1Z2luU3RyYXRlZ3koMCkKLSAgICAgICAgLCBtX2xvY2Fs
aXphdGlvblN0cmF0ZWd5KDApCiAgICAgICAgICwgbV92aXNpdGVkTGlua1N0cmF0ZWd5KDApCiAg
ICAgewogICAgIH0KQEAgLTgxLDEyICs3MiwxMCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IHZpcnR1YWwgQ29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3koKSA9IDA7CiAg
ICAgdmlydHVhbCBQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKSA9IDA7Ci0g
ICAgdmlydHVhbCBMb2NhbGl6YXRpb25TdHJhdGVneSogY3JlYXRlTG9jYWxpemF0aW9uU3RyYXRl
Z3koKTsKICAgICB2aXJ0dWFsIFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5r
U3RyYXRlZ3koKSA9IDA7CiAKICAgICBDb29raWVzU3RyYXRlZ3kqIG1fY29va2llc1N0cmF0ZWd5
OwogICAgIFBsdWdpblN0cmF0ZWd5KiBtX3BsdWdpblN0cmF0ZWd5OwotICAgIExvY2FsaXphdGlv
blN0cmF0ZWd5KiBtX2xvY2FsaXphdGlvblN0cmF0ZWd5OwogICAgIFZpc2l0ZWRMaW5rU3RyYXRl
Z3kqIG1fdmlzaXRlZExpbmtTdHJhdGVneTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAppbmRleCAyNzI0MGU4MmI1ODE0
YzQ1YWJkMDVjYmI1YzJlZTZlMDJhMzcxMWFhLi5jNGE4MmZhNjZkZjQzNzgzZGE0MjBiNjM3MTY2
ZmZjZDUwNWU3YjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9j
YWxpemVkU3RyaW5nc0VmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xv
Y2FsaXplZFN0cmluZ3NFZmwuY3BwCkBAIC01NTUsOSArNTU1LDQgQEAgU3RyaW5nIGNyYXNoZWRQ
bHVnaW5UZXh0KCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgicGx1Z2luIGNyYXNoZWQi
KTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCi17Ci0gICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Ci19Ci0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApp
bmRleCAwN2JlZDhkYjNlOTBlZTZkMjUzOWE3NWVkMmUyYmQzMjVmZTk3MzZjLi5mZWYzMTdjN2Zl
MzZhODRjMDM5NDA5YzJmYzBkZjI4ODVmNThlZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCkBAIC02NTIsOSArNjUyLDQg
QEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oInN0ZXAgbWlz
bWF0Y2giKSk7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KQot
ewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwgc3RybGVuKGtleSkpOwotfQotCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdz
UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYTQ5YjcyODM5MTgyN2MyM2I2MmQ1MTBmMjUwODIxYWI3MjBiMDUyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemVkU3Ry
aW5nc1F0LmNwcApAQCAtMCwwICsxLDY4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBT
dGFpa29zIENvbXB1dGluZyBTZXJ2aWNlcyBJbmMuIDxpbmZvQHN0YWlrb3MubmV0PgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElOZFQgLSBJbnN0aXR1dG8gTm9raWEg
ZGUgVGVjbm9sb2dpYQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TG9jYWxpemVkU3RyaW5ncy5oIgorCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDxR
Q29yZUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJTdWJt
aXQgKGlucHV0IGVsZW1lbnQpIGFsdCB0ZXh0IGZvciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8g
YWx0LCB0aXRsZSwgb3IgdmFsdWUiKTsKK30KKworU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJSZXNldCIsICJkZWZhdWx0IGxhYmVsIGZvciBSZXNldCBidXR0b25zIGluIGZvcm1zIG9u
IHdlYiBwYWdlcyIpOworfQorCitTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJU
aGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiLCAidGV4
dCB0aGF0IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMg
aW4gdGhlIGZvcm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKK30KKworU3RyaW5nIHN1Ym1p
dEJ1dHRvbkRlZmF1bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3VibWl0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFN1Ym1pdCBi
dXR0b25zIGluIGZvcm1zIG9uIHdlYiBwYWdlcyIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRvbkNo
b29zZUZpbGVMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZpbGUiLCAidGl0bGUgZm9yIGEgc2luZ2xlIGZpbGUgY2hv
b3NlciBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9u
Q2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaG9vc2UgRmlsZXMiLCAidGl0bGUgZm9yIGEgbXVs
dGlwbGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMuIFRoaXMgdGl0bGUg
c2hvdWxkIGJlIGFzIHNob3J0IGFzIHBvc3NpYmxlLiIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5
IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0
ZWQiKTsKK30KKworU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCit7Cisg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gZmls
ZXMgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRN
TCBmb3JtcyB3aGVuIG5vIGZpbGVzIGFyZSBzZWxlY3RlZCBhbmQgdGhlIGJ1dHRvbiBhbGxvd3Mg
bXVsdGlwbGUgZmlsZXMgdG8gYmUgc2VsZWN0ZWQiKTsKK30KKworU3RyaW5nIGRlZmF1bHREZXRh
aWxzU3VtbWFyeVRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkRldGFpbHMiLCAidGV4dCB0byBkaXNwbGF5IGluIDxkZXRhaWxzPiB0
YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxkIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIGluIE5ldyBXaW5kb3ciLCAiT3Bl
biBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQoreworICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNhdmUgTGluay4uLiIsICJEb3dubG9hZCBM
aW5rZWQgRmlsZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBMaW5rIiwgIkNvcHkgTGluayBjb250ZXh0
IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5O
ZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIk9wZW4gSW1hZ2UiLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdl
VG9EaXNrKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTYXZlIEltYWdlIiwgIkRvd25sb2FkIEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29w
eSBJbWFnZSIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIEFkZHJl
c3MiLCAiQ29weSBJbWFnZSBBZGRyZXNzIG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gVmlkZW8iLCAiT3BlbiBWaWRl
byBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVk
aW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiT3BlbiBBdWRpbyIsICJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
Q29weSBWaWRlbyIsICJDb3B5IFZpZGVvIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBBdWRpbyIsICJD
b3B5IEF1ZGlvIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBDb250cm9scyIsICJUb2dnbGUgTWVkaWEgQ29u
dHJvbHMiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
VG9nZ2xlIExvb3AiLCAiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJFbnRlciBGdWxsc2NyZWVu
IiwgIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkiLCAiUGxheSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UiLCAiUGF1c2UiKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSIsICJNdXRlIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBGcmFtZSIsICJPcGVuIEZy
YW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHkoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkiLCAiQ29weSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKK3sKKyAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJHbyBCYWNrIiwgIkJhY2sgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
R28gRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdTdG9wKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdG9wIiwgIlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpCit7CisgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVsb2FkIiwgIlJlbG9hZCBj
b250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJD
dXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdQYXN0ZSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VsZWN0IEFsbCIsICJTZWxlY3QgQWxs
IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdOb0d1
ZXNzZXNGb3VuZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGlu
ZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiSWdub3JlIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCit7CisgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQWRkIFRvIERpY3Rpb25hcnki
LCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VhcmNoIFRoZSBXZWIiLCAiU2VhcmNoIFRoZSBXZWIg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tV
cEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxvb2sgVXAgSW4gRGljdGlvbmFyeSIsICJMb29r
IFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJ
Z25vcmUiLCAiSWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3BlbGxpbmciLCAiU3BlbGxpbmcgYW5k
IEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpCit7CisgICAgcmV0dXJuIHNob3cg
PyBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNob3cgU3BlbGxpbmcg
YW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIikgOgorICAgICAgICAgICAgICAgICAgUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJIaWRlIFNwZWxsaW5nIGFuZCBH
cmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ2hlY2tTcGVsbGluZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgU3BlbGxpbmciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxp
bmdXaGlsZVR5cGluZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNwZWxs
aW5nIHdoaWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaGVjayBHcmFtbWFyIFdpdGgg
U3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRm9udHMiLCAiRm9u
dCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0JvbGQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkJvbGQiLCAiQm9sZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJdGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVuZGVybGluZSIs
ICJVbmRlcmxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ091dGxpbmUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIk91dGxpbmUiLCAiT3V0bGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRpcmVj
dGlvbiIsICJXcml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUZXh0IERpcmVjdGlv
biIsICJUZXh0IGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRlZmF1bHQiLCAiRGVmYXVsdCB3
cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBj
b250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRU
b0xlZnQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkluc3BlY3Qi
LCAiSW5zcGVjdCBFbGVtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBzZWFy
Y2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBm
b3Igb25seSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNl
YXJjaCBmaWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7
Cit9CisKK1N0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWNlbnQgc2VhcmNo
ZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4g
Y2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51
IHRpdGxlIik7Cit9CisKK1N0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQo
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IkNsZWFyIHJlY2VudCBzZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJjaGVzIG1l
bnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOworfQorCitTdHJpbmcgQVhXZWJBcmVh
VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBBWExpbmtUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhJbWFn
ZU1hcFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgQVhIZWFkaW5nVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWERlZmluaXRpb25MaXN0VGVybVRl
eHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQnV0dG9uQWN0
aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWFRleHRGaWVsZEFj
dGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYVW5jaGVj
a2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFY
TWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBtaXNz
aW5nUGx1Z2luVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiTWlzc2luZyBQbHVnLWluIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3
aGVuIGEgcGx1Zy1pbiBpcyBtaXNzaW5nIik7Cit9CisKK1N0cmluZyBjcmFzaGVkUGx1Z2luVGV4
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdW5rbm93bkZpbGVT
aXplVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlzdGlu
ZyBpdGVtIik7Cit9CisKK1N0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgKCUyeCUzIHBpeGVscykiLCAiVGl0bGUgc3RyaW5nIGZv
ciBpbWFnZXMiKS5hcmcoZmlsZW5hbWUpLmFyZyhzaXplLndpZHRoKCkpLmFyZyhzaXplLmhlaWdo
dCgpKTsKK30KKworU3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxvYWRpbmcu
Li4iLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHRoZSBtZWRpYSBpcyBs
b2FkaW5nIik7Cit9CisKK1N0cmluZyBtZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJMaXZlIEJyb2FkY2FzdCIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4g
d2F0Y2hpbmcgYSBsaXZlIGJyb2FkY2FzdCIpOworfQorCisjaWYgRU5BQkxFKFZJREVPKQorCitT
dHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5h
bWUpCit7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkF1ZGlvIEVsZW1lbnQiLCAi
TWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVu
dCIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlZpZGVvIEVsZW1lbnQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYg
KG5hbWUgPT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIEJ1dHRvbiIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRv
biIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlBsYXkgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChu
YW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2xpZGVyIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCisgICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNsaWRlciBU
aHVtYiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUmV3
aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUmV3aW5kIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
KyAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiB0byBSZWFs
LXRpbWUgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1l
ID09ICJDdXJyZW50VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJFbGFwc2VkIFRpbWUiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVt
YWluaW5nIFRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUg
PT0gIlN0YXR1c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJTdGF0dXMgRGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkZ1bGxzY3JlZW4g
QnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJT
ZWVrRm9yd2FyZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgRm9yd2FyZCBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBCYWNr
IEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChj
b25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisg
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkF1
ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgIk1lZGlh
IGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQor
ICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJW
aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCisg
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11
dGUgYXVkaW8gdHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChu
YW1lID09ICJVbk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbm11dGUgYXVkaW8gdHJhY2tzIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQmVnaW4gcGxh
eWJhY2siLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlBh
dXNlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUGF1c2UgcGxheWJhY2siLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIiLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKKyAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTW92
aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAg
ICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV3aW5kIG1vdmllIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiUmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFsLXRpbWUiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCisgICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkN1cnJl
bnQgbW92aWUgdGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFt
ZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZW1haW5pbmcgbW92aWUgdGltZSIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxheSIp
CisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IkN1cnJlbnQgbW92aWUgc3RhdHVzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAg
IGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSBtb3ZpZSBpbiBmdWxsLXNjcmVl
biBtb2RlIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJT
ZWVrRm9yd2FyZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBiYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgcXVpY2ts
eSBmb3J3YXJkIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKK3sKKyAgICBpZiAoIWlzZmluaXRlKHRp
bWUpKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJJbmRlZmluaXRlIHRpbWUiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpOworCisgICAg
aW50IHNlY29uZHMgPSAoaW50KWZhYnNmKHRpbWUpOworICAgIGludCBkYXlzID0gc2Vjb25kcyAv
ICg2MCAqIDYwICogMjQpOworICAgIGludCBob3VycyA9IHNlY29uZHMgLyAoNjAgKiA2MCk7Cisg
ICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOworICAgIHNlY29uZHMgJT0gNjA7
CisKKyAgICBpZiAoZGF5cykKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiJTEgZGF5cyAlMiBob3VycyAlMyBtaW51dGVzICU0IHNlY29uZHMi
LCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhkYXlzKS5hcmcoaG91cnMpLmFyZyhtaW51
dGVzKS5hcmcoc2Vjb25kcyk7CisKKyAgICBpZiAoaG91cnMpCisgICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGhvdXJzICUyIG1pbnV0ZXMg
JTMgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKGhvdXJzKS5hcmcobWlu
dXRlcykuYXJnKHNlY29uZHMpOworCisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIG1pbnV0ZXMgJTIgc2Vj
b25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRz
KTsKKworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IiUxIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhzZWNvbmRzKTsKK30K
KworI2Vsc2UgLy8gRU5BQkxFKFZJREVPKQorLy8gRklYTUU6ICNpZiBFTkFCTEUoVklERU8pIHNo
b3VsZCBiZSBpbiB0aGUgYmFzZSBjbGFzcworCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9s
RWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0
IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2Nh
bGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQoreworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKworCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNz
aW5nRm9yQ2hlY2tib3hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9y
RmlsZVRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JNdWx0aXBsZUZp
bGVUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hGb3JFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hG
b3JNdWx0aXBsZUVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZv
clVSTFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50IHZhbHVlTGVuZ3RoLCBpbnQgbWF4TGVu
Z3RoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5n
JiBtaW5pbXVtKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBT
dHJpbmcmIG1heGltdW0pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29u
c3QgU3RyaW5nJiBiYXNlLCBjb25zdCBTdHJpbmcmIHN0ZXApCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKaW5kZXgg
NjRkNDI0ZDk1NmUzYzA4ZjU0ZmVhYjdiYjE2NTg5MTQyZjIyZWEyZS4uYmM1MTcyZWIzMTg1Mjg3
MDQ0YTIzMDNhNzc2MTQyOGIxNjRjZTY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKQEAgLTY4LDExICs2
OCw2IEBAIFBsdWdpblN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y3JlYXRlUGx1Z2lu
U3RyYXRlZ3koKQogICAgIHJldHVybiB0aGlzOwogfQogCi1Mb2NhbGl6YXRpb25TdHJhdGVneSog
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCkKLXsKLSAg
ICByZXR1cm4gdGhpczsKLX0KLQogVmlzaXRlZExpbmtTdHJhdGVneSogUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKQogewogICAgIHJldHVybiB0aGlzOwpA
QCAtMTQ1LDYwOCArMTQwLDYgQEAgdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Z2V0UGx1Z2lu
SW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiBwYWdlLCBWZWN0b3I8V2ViQ28KIAogfQogCi0KLS8v
IExvY2FsaXphdGlvblN0cmF0ZWd5Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6aW5w
dXRFbGVtZW50QWx0VGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkgYWx0IHRl
eHQgZm9yIDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnJlc2V0QnV0dG9uRGVmYXVsdExhYmVs
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJSZXNldCIsICJkZWZhdWx0IGxhYmVsIGZvciBSZXNldCBidXR0b25zIGluIGZvcm1zIG9uIHdl
YiBwYWdlcyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnNlYXJjaGFibGVJ
bmRleEludHJvZHVjdGlvbigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJj
aCBrZXl3b3JkczogIiwgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBuZWFybHkt
b2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgnIik7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c3VibWl0QnV0dG9uRGVmYXVsdExh
YmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMg
b24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZmlsZUJ1
dHRvbkNob29zZUZpbGVMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZpbGUiLCAidGl0bGUgZm9yIGEgc2luZ2xlIGZp
bGUgY2hvb3NlciBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hv
b3NlIEZpbGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNl
ZCBpbiBIVE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJs
ZS4iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiTm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmls
ZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3RlZCIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0
ZWRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiTm8gZmlsZXMgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0
dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGVzIGFyZSBzZWxlY3RlZCBhbmQgdGhl
IGJ1dHRvbiBhbGxvd3MgbXVsdGlwbGUgZmlsZXMgdG8gYmUgc2VsZWN0ZWQiKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZXRh
aWxzIiwgInRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxz
dW1tYXJ5PiBjaGlsZCIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gaW4gTmV3IFdpbmRvdyIsICJP
cGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNh
dmUgTGluay4uLiIsICJEb3dubG9hZCBMaW5rZWQgRmlsZSBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlM
aW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdP
cGVuSW1hZ2VJbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBJbWFnZSIsICJPcGVuIEltYWdlIGluIE5ldyBXaW5k
b3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
Ojpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZlIEltYWdlIiwgIkRv
d25sb2FkIEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkg
SW1hZ2UiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9h
cmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3MgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3Bl
blZpZGVvSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gVmlkZW8iLCAiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
T3BlbkF1ZGlvSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gQXVkaW8iLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2lu
ZG93Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVt
VGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IFZpZGVvIiwgIkNvcHkgVmlkZW8gTGlu
ayBMb2NhdGlvbiIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBBdWRpbyIsICJDb3B5IEF1
ZGlvIExpbmsgTG9jYXRpb24iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29udHJvbHMiLCAi
VG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgTG9vcCIsICJUb2dn
bGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJFbnRlciBGdWxsc2Ny
ZWVuIiwgIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXki
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBhdXNlKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJQYXVzZSIsICJQYXVzZSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSIsICJNdXRlIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1l
SW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIk9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4
dE1lbnVJdGVtVGFnQ29weSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSIsICJDb3B5IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJH
byBCYWNrIiwgIkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEZvcndhcmQiLCAi
Rm9yd2FyZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN0b3AiLCAiU3RvcCBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ1JlbG9hZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3V0Iiwg
IkN1dCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXN0ZSIsICJQYXN0ZSBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ1NlbGVjdEFsbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiU2VsZWN0IEFsbCIsICJTZWxlY3QgQWxsIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
Tm9HdWVzc2VzRm91bmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8gR3Vlc3NlcyBGb3VuZCBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJZ25vcmUiLCAiSWdub3JlIFNwZWxsaW5nIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29u
dGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQWRkIFRvIERpY3Rpb25hcnkiLCAiTGVhcm4g
U3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlYXJjaCBUaGUgV2ViIiwgIlNl
YXJjaCBUaGUgV2ViIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0
cmluZyYpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiTG9vayBVcCBJbiBEaWN0aW9uYXJ5IiwgIkxvb2sgVXAgaW4gRGljdGlvbmFyeSBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJ
dGVtVGFnSWdub3JlR3JhbW1hcigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJ
dGVtVGFnU3BlbGxpbmdNZW51KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJTcGVsbGluZyIsICJTcGVsbGluZyBhbmQgR3JhbW1hciBjb250
ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpCi17Ci0gICAgcmV0
dXJuIHNob3cgPyBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNob3cg
U3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIikgOgotICAgICAgICAgICAg
ICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJIaWRlIFNwZWxs
aW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNw
ZWxsaW5nIiwgIkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1do
aWxlVHlwaW5nKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcg
d2hpbGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJD
aGVjayBHcmFtbWFyIFdpdGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5n
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkZvbnRzIiwgIkZvbnQgY29udGV4dCBzdWItbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJ
dGVtVGFnQm9sZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJdGFsaWMi
LCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbmRlcmxpbmUiLCAiVW5kZXJs
aW5lIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRpcmVjdGlvbiIsICJXcml0aW5nIGRpcmVj
dGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVGV4dCBEaXJlY3Rp
b24iLCAiVGV4dCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlv
bigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiRGVmYXVsdCIsICJEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
TGVmdFRvUmlnaHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ1JpZ2h0VG9MZWZ0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExlZnQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVu
dUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSW5zcGVjdCIsICJJbnNwZWN0IEVsZW1lbnQgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hN
ZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Ig
b25seSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJj
aCBmaWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVz
VGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiUmVjZW50IHNlYXJjaGVzIiwgImxhYmVsIGZvciBmaXJzdCBpdGVtIGluIHRoZSBtZW51
IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHVz
ZWQgYXMgZW1iZWRkZWQgbWVudSB0aXRsZSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2xlYXIgcmVjZW50IHNl
YXJjaGVzIiwgIm1lbnUgaXRlbSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMg
bWVudSdzIGNvbnRlbnRzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhX
ZWJBcmVhVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5n
KCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhMaW5rVGV4dCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhMaXN0TWFya2VyVGV4dCgpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6QVhJbWFnZU1hcFRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYSGVh
ZGluZ1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYRGVmaW5pdGlvbkxpc3RUZXJt
VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRp
b25UZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0OjpBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OkFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OkFYTWVudUxpc3RBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
OjpBWExpbmtBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjptaXNzaW5nUGx1
Z2luVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiTWlzc2luZyBQbHVnLWluIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEg
cGx1Zy1pbiBpcyBtaXNzaW5nIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
Y3Jhc2hlZFBsdWdpblRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6Om11bHRpcGxlRmls
ZVVwbG9hZFRleHQodW5zaWduZWQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dW5rbm93bkZp
bGVTaXplVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlz
dGluZyBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6aW1hZ2VUaXRs
ZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxICglMnglMyBw
aXhlbHMpIiwgIlRpdGxlIHN0cmluZyBmb3IgaW1hZ2VzIikuYXJnKGZpbGVuYW1lKS5hcmcoc2l6
ZS53aWR0aCgpKS5hcmcoc2l6ZS5oZWlnaHQoKSk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTG9hZGluZy4uLiIsICJNZWRp
YSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gdGhlIG1lZGlhIGlzIGxvYWRpbmciKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjptZWRpYUVsZW1lbnRMaXZlQnJvYWRj
YXN0U3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJMaXZlIEJyb2FkY2FzdCIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBt
ZXNzYWdlIHdoZW4gd2F0Y2hpbmcgYSBsaXZlIGJyb2FkY2FzdCIpOwotfQotCi0jaWYgRU5BQkxF
KFZJREVPKQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09
ICJBdWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJBdWRpbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOwotICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBFbGVtZW50IiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikK
LSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
TXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIlVuTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlVubXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IEJ1dHRvbiIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQot
ICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQ
YXVzZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlNsaWRlciIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBp
ZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTbGlkZXIgVGh1bWIiLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBCdXR0
b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVy
blRvUmVhbHRpbWVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJSZXR1cm4gdG8gUmVhbC10aW1lIEJ1dHRvbiIsICJNZWRpYSBj
b250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5
IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiRWxhcHNlZCBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChu
YW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBUaW1lIiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3Rh
dHVzIERpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJGdWxsc2NyZWVuIEJ1dHRvbiIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVr
IEZvcndhcmQgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChu
YW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgQmFjayBCdXR0b24iLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNv
bnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQXVk
aW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCi0g
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlZp
ZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgIk1lZGlh
IGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0
ZSBhdWRpbyB0cmFja3MiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5h
bWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVubXV0ZSBhdWRpbyB0cmFja3MiLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQotICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCZWdpbiBwbGF5
YmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1
c2VCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJQYXVzZSBwbGF5YmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
LSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTW92aWUgdGltZSBzY3J1YmJlciIsICJNZWRpYSBj
b250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3Zp
ZSB0aW1lIHNjcnViYmVyIHRodW1iIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAg
IGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXdpbmQgbW92aWUiLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24i
KQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJSZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwtdGltZSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3VycmVu
dCBtb3ZpZSB0aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1l
ID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBtb3ZpZSB0aW1lIiwgIk1lZGlh
IGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikK
LSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
Q3VycmVudCBtb3ZpZSBzdGF0dXMiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAg
aWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IG1vdmllIGluIGZ1bGwtc2NyZWVu
IG1vZGUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNl
ZWtGb3J3YXJkQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBxdWlja2x5IGJhY2siLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBxdWlja2x5
IGZvcndhcmQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsK
LSAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJbmRlZmluaXRlIHRpbWUiLCAiTWVkaWEgdGltZSBk
ZXNjcmlwdGlvbiIpOwotCi0gICAgaW50IHNlY29uZHMgPSAoaW50KWZhYnNmKHRpbWUpOwotICAg
IGludCBkYXlzID0gc2Vjb25kcyAvICg2MCAqIDYwICogMjQpOwotICAgIGludCBob3VycyA9IHNl
Y29uZHMgLyAoNjAgKiA2MCk7Ci0gICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYw
OwotICAgIHNlY29uZHMgJT0gNjA7Ci0KLSAgICBpZiAoZGF5cykKLSAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgZGF5cyAlMiBob3VycyAl
MyBtaW51dGVzICU0IHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhkYXlz
KS5hcmcoaG91cnMpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7Ci0KLSAgICBpZiAoaG91cnMp
Ci0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IiUxIGhvdXJzICUyIG1pbnV0ZXMgJTMgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9u
IikuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOwotCi0gICAgaWYgKG1pbnV0
ZXMpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIiUxIG1pbnV0ZXMgJTIgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJn
KG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKLQotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlv
biIpLmFyZyhzZWNvbmRzKTsKLX0KLQotI2Vsc2UgLy8gRU5BQkxFKFZJREVPKQotLy8gRklYTUU6
ICNpZiBFTkFCTEUoVklERU8pIHNob3VsZCBiZSBpbiB0aGUgYmFzZSBjbGFzcwotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmco
Y29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRl
eHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihm
bG9hdCB0aW1lKQotewotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotI2VuZGlmIC8vIEVOQUJM
RShWSURFTykKLQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxp
ZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi0KIC8vIFZp
c2l0ZWRMaW5rU3RyYXRlZ3kKIAogYm9vbCBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6aXNMaW5rVmlz
aXRlZChQYWdlKiBwYWdlLCBMaW5rSGFzaCBoYXNoLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBjb25z
dCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZVVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaAppbmRleCA1MDQ5MTllMzgz
ZmM5NDc5MjJjODRiMjc1ZmE0ZWQxMGYyOGExZmY2Li44YmNlYzU2MjIxZDUxMzc5MmU5MDNhNDgw
ODM0YzU0OGJhMDU0NjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDEwIElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQog
ICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQogICoKQEAgLTI5LDcgKzI5LDYgQEAKICNkZWZpbmUgUGxhdGZvcm1TdHJhdGVn
aWVzUXRfaAogCiAjaW5jbHVkZSA8Q29va2llc1N0cmF0ZWd5Lmg+Ci0jaW5jbHVkZSA8TG9jYWxp
emF0aW9uU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxQbGF0Zm9ybVN0cmF0ZWdpZXMuaD4KICNpbmNs
dWRlIDxQbHVnaW5TdHJhdGVneS5oPgogI2luY2x1ZGUgPFZpc2l0ZWRMaW5rU3RyYXRlZ3kuaD4K
QEAgLTM4LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGFnZTsKIH0KIAot
Y2xhc3MgUGxhdGZvcm1TdHJhdGVnaWVzUXQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJh
dGVnaWVzLCBwcml2YXRlIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3Jl
OjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneSwg
cHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5IHsKK2NsYXNzIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBX
ZWJDb3JlOjpDb29raWVzU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ks
IHByaXZhdGUgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZSgpOwogCkBAIC00OCw3ICs0Nyw2IEBAIHByaXZhdGU6CiAgICAg
Ly8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgdmlydHVhbCBXZWJDb3JlOjpDb29r
aWVzU3RyYXRlZ3kqIGNyZWF0ZUNvb2tpZXNTdHJhdGVneSgpOwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCk7Ci0gICAgdmlydHVhbCBX
ZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneSogY3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3ko
KTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0
ZWRMaW5rU3RyYXRlZ3koKTsKICAgICAKICAgICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kK
QEAgLTU4LDEwMSArNTYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWZyZXNoUGx1
Z2lucygpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRQbHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBh
Z2UqLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKTsKIAotICAgIC8vIFdlYkNvcmU6Okxv
Y2FsaXphdGlvblN0cmF0ZWd5Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBpbnB1dEVsZW1lbnRB
bHRUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJl
bCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9u
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwo
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVs
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFi
ZWwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQo
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5O
ZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rv
d25sb2FkTGlua1RvRGlzaygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKLSAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCk7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxU
b0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlbkZyYW1lSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NvcHkoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0dvQmFjaygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
R29Gb3J3YXJkKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdT
dG9wKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQo
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKLSAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlv
bmFyeShjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVHcmFtbWFyKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTcGVsbGluZ01lbnUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdyk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldp
dGhTcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Rm9udE1lbnUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Jv
bGQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCk7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9u
TWVudSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dERp
cmVjdGlvbk1lbnUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0RlZmF1bHREaXJlY3Rpb24oKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdSaWdodFRvTGVmdCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJk
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9M
aW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgQVhXZWJBcmVhVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
QVhMaW5rVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhMaXN0TWFya2VyVGV4dCgp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIEFYSGVhZGluZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFY
RGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhEZWZp
bml0aW9uTGlzdERlZmluaXRpb25UZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWEJ1
dHRvbkFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYUmFkaW9CdXR0b25B
Y3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZl
cmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVy
YigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZl
cmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBBWExpbmtBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY3Jh
c2hlZFBsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG11bHRpcGxlRmlsZVVw
bG9hZFRleHQodW5zaWduZWQgbnVtYmVyT2ZGaWxlcyk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyB1bmtub3duRmlsZVNpemVUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBpbWFnZVRp
dGxlKGNvbnN0IFdURjo6U3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRl
VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxl
bWVudFN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFdURjo6U3RyaW5nJik7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihm
bG9hdCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7Ci0KICAgICAvLyBXZWJD
b3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5CiAgICAgdmlydHVhbCBib29sIGlzTGlua1Zpc2l0ZWQo
V2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBi
YXNlVVJMLCBjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgYXR0cmlidXRlVVJMKTsKICAgICB2aXJ0
dWFsIHZvaWQgYWRkVmlzaXRlZExpbmsoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZv
cm1TdHJhdGVnaWVzV2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaAppbmRleCA5MmQzN2RjNjUzNjJhOTU1ZTYxYzA5YTVm
YjM2MWVjZWI1ZmNlM2EwLi40N2IwZTM0MjVjN2M0YjY2Y2E3ODQ3ZjgyZTc1OGI2YzFlMjMzMjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1dpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjZGVmaW5lIFBs
YXRmb3JtU3RyYXRlZ2llc1dpbkNFX2gKIAogI2luY2x1ZGUgIkNvb2tpZXNTdHJhdGVneS5oIgot
I2luY2x1ZGUgIkxvY2FsaXphdGlvblN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCiAjaW5jbHVkZSAiUGx1Z2luU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJWaXNpdGVk
TGlua1N0cmF0ZWd5LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127020</attachid>
            <date>2012-02-14 12:51:11 -0800</date>
            <delta_ts>2012-02-14 14:28:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120214125110.patch</filename>
            <type>text/plain</type>
            <size>210212</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZiYTE4MmY2YjE4MDg4
NGZlYjAyY2VkM2FmYmUxYjQ1NGQ0ZWE4Ni4uZTI1OGZkYWQ3ZTQ0OTcxYjZlODRkZDZiYmQ1Y2Uz
ZDFlM2U0NTM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3MCBAQAorMjAxMi0wMi0xNCAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIExvY2FsaXphdGlvblN0cmF0ZWd5IGFuZCB1bmlmeSB0
aGUgbG9jYWxpemF0aW9uIGJlaGluZAorICAgICAgICBMb2NhbGl6ZWRTdHJpbmdzLmggYW5kIExv
Y2FsaXplZFN0cmluZ3MuY3BwLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjp0
cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjppbnB1
dEVsZW1lbnRBbHRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxl
QnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVC
dXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25O
b0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0RGV0YWlsc1N1
bW1hcnlUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBi
b2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5l
d1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZElt
YWdlVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFn
ZVRvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29CYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1JlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdD
dXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoV2ViKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEluRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTGluayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25v
cmVHcmFtbWFyKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5n
TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQ
YW5lbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1t
YXJXaXRoU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRm9u
dE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ1VuZGVybGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPdXRsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0eWxl
cyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZyk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0TGlua3MpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4
dFJlcGxhY2VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
Zm9ybWF0aW9uc01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWFr
ZVVwcGVyQ2FzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93
ZXJDYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlu
a1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVy
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhX
ZWJBcmVhVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFYTGlzdE1hcmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZU1hcFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhIZWFkaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWERlZmluaXRpb25MaXN0VGVybVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0
aW9uTGlzdERlZmluaXRpb25UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYQVJJQUNvbnRlbnRH
cm91cFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYVGV4dEZpZWxkQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVj
a0JveEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFj
dGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaW5rQWN0aW9uVmVyYik6CisgICAgICAg
IChXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYTWVudUxpc3RBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6Om1pc3NpbmdQbHVnaW5U
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6Om11bHRpcGxlRmlsZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93
bkZpbGVTaXplVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1cGxvYWRGaWxlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjphbGxGaWxlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRJblBE
RlBsdWdpbk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6cGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW01MTIpOgorICAgICAgICAoV2Vi
Q29yZTo6a2V5Z2VuTWVudUl0ZW0xMDI0KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbk1lbnVJ
dGVtMjA0OCk6CisgICAgICAgIChXZWJDb3JlOjprZXlnZW5LZXljaGFpbkl0ZW1OYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6Omh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKToKKyAgICAgICAgKFdlYkNv
cmU6OmltYWdlVGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TG9hZGluZ1N0
YXRlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3Rh
dGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhl
bHBUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNr
Ym94VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2lu
Z0ZvckZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVN
aXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVZhbHVlTWlzc2luZ0ZvclJhZGlvVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclNlbGVjdFRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNo
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXM6OlBsYXRmb3JtU3RyYXRlZ2llcyk6CisgICAg
ICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0xvY2FsaXpl
ZFN0cmluZ3NRdC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjppbnB1dEVsZW1lbnRBbHRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0
QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaGFibGVJbmRleElu
dHJvZHVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwp
OgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCk6CisgICAgICAg
IChXZWJDb3JlOjpmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpk
ZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzayk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
Q29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxh
eSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0dvQmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdHb0ZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ3V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1Bhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1NlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdOb0d1
ZXNzZXNGb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVT
cGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxs
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYik6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmspOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcik6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnSXRhbGljKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVy
bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNl
YXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVu
dUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYV2ViQXJlYVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaW5rVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpB
WExpc3RNYXJrZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2VNYXBUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYSGVhZGluZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZp
bml0aW9uTGlzdFRlcm1UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEJ1dHRvbkFjdGlvblZlcmIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhUZXh0RmllbGRBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYQ2hlY2tl
ZENoZWNrQm94QWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFVuY2hlY2tlZENoZWNr
Qm94QWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWE1lbnVMaXN0QWN0aW9uVmVyYik6
CisgICAgICAgIChXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYTGlua0FjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6bWlzc2luZ1Bs
dWdpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1
bmtub3duRmlsZVNpemVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVGl0bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckZpbGVUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxl
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0Zv
clJhZGlvVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ0ZvclNlbGVjdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKwogMjAxMi0wMi0xMiAgVGltb3RoeSBI
YXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgaW5jbHVkZSBDYWNo
ZWRSZXNvdXJjZXMgdGhhdCBoYXZlbid0IGRvd25sb2FkZWQgd2hlbiBwb3B1bGF0aW5nIHRoZSBX
ZWIgSW5zcGVjdG9yIG9uIGxvYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDIzYzVlNzZjMGU0Njc5YzRj
MzZhMDQwZTZlOWQ4NTM5NTViMTM0MTEuLjEwNTc0Zjc4Y2NiZDg3MmFhZDU5YTA1MjQ4N2JlNTBm
ZDVlMDJmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDItMTQgIEJl
bmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQg
b2YgdGhlIExvY2FsaXphdGlvblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGxvY2FsaXphdGlvbiBjb2RlIGZyb20gUGxhdGZv
cm1TdHJhdGVnaWVzUXQuY3BwCisgICAgICAgIHRvIExvY2FsaXplZFN0cmluZ3NRdC5jcHAuCisK
KyAgICAgICAgR2V0IHJpZCBvZiBMb2NhbGl6YXRpb25TdHJhdGVneSBmcm9tIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNR
dC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaDoK
KyAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc1F0KToKKwogMjAxMi0wMi0xMSAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHN2Zy9h
bmltYXRpb25zIHRvIHVzZSBTTUlMIG1ldGhvZHMgZm9yIGRyaXZpbmcgdGhlIHRpbWVsaW5lCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCmluZGV4IDZkMmE3ZTY0N2IyZTBhZTA5YjdmNzZjYzA2NzI2Nzg1OTNm
OTIxMzEuLjhhM2VhY2FlMDNiOTBhNjUyYmVhMzU2M2U2OTQ2Mzc3YTJkZmM5OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTQgIEJlbmphbWluIFBvdWxh
aW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2Fs
aXphdGlvblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSBhIHVzZWxlc3MgI2luY2x1ZGUgb2YgTG9jYWxpemF0aW9uU3RyYXRlZ3ku
aC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmg6
CisKIDIwMTEtMTItMTkgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBN
b3JlIFBsYXRmb3JtRXZlbnQgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkZTA5MGU2
MTYzMTQxOGZkMDQzYzhhODkxNmQ3NmY3MjlhMjQ4NThkLi5jMmQ1Yjg3OTdkNWRjMDA4OWIzZTFm
ZTJlM2UwMWZlODNkZjQzMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA1Nyw3ICsxMDU3
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0NvbnRlbnRUeXBlLmNwcAog
ICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAogICAgIHBsYXRmb3JtL0RhdGVDb21w
b25lbnRzLmNwcAotICAgIHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAK
ICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCiAg
ICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBkYjgwMjExNDBkOTA0OWIzYjVmNDRhOTg0MzBmNmZmMDUyMWJhYWExLi43NGUxZWJlNjU4
ZDQ0ODhjMGQwMTE1NWJlODIxYzNiYWJmYjdiOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTI4MzMsOCArMjgzMyw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rh
dGVDb21wb25lbnRzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVu
dHMuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRHJhZ0ltYWdlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA2Zjc2OWIxZGFjNDA2NWI5MTE5MTFm
MzhhNjkzODY0OTQxN2Y2MDU0Li44ZTVkZjRlMmE0N2Y0YjMxZDY1Yjc1MjJmOTQ3YTYxYzFlOTc4
ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEwMzgsNyArMTAzOCw2IEBAIFNPVVJDRVMgKz0gXAogICAg
IHBsYXRmb3JtL0NvbnRlbnRUeXBlLmNwcCBcCiAgICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3Bp
ZXIuY3BwIFwKICAgICBwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgXAotICAgIHBsYXRmb3Jt
L0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgXAogICAgIHBsYXRmb3JtL0RyYWdEYXRh
LmNwcCBcCiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZUNo
b29zZXIuY3BwIFwKQEAgLTExNzIsNyArMTE3MSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRm
b3JtL1VVSUQuY3BwIFwKICAgICBwbGF0Zm9ybS9XaWRnZXQuY3BwIFwKICAgICBwbGF0Zm9ybS9Q
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwKLSAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNw
cCBcCiAgICAgcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHAgXAogICAgIHBsdWdpbnMvUGx1
Z2luRGF0YWJhc2UuY3BwIFwKICAgICBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcCBcCkBAIC0yMDk1
LDcgKzIwOTMsNiBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudS5oIFwK
ICAgICBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIFwKICAgICBwbGF0Zm9ybS9EYXRlQ29t
cG9uZW50cy5oIFwKLSAgICBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBc
CiAgICAgcGxhdGZvcm0vRHJhZ0RhdGEuaCBcCiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmggXAog
ICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmggXApAQCAtMjg0MCw2ICsyODM3LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vcXQvU291bmRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0xv
Z2dpbmdRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0xhbmd1YWdlUXQuY3BwIFwKKyAgICBwbGF0
Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9UZW1wb3Jh
cnlMaW5rU3R1YnNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJvdW5kYXJpZXNR
dC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VVF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGRhM2U3ODRjNTk0MjE3MTQ4MDdlNDM1
MGJmNWE4NzgxZTliYmFhMGQuLmYxYTYxMzE2ZjlhMmQ1NjJkZDg0MjEyZTRjZDkzOTIyOTBlZjA0
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01NDgsNyArNTQ4LDYgQEAgX19aTjdXZWJDb3Jl
MTdSZWd1bGFyRXhwcmVzc2lvbkQxRXYKIF9fWk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1cmVF
UE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05TMl85Q2xhc3NJbmZv
RQogX19aTjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVSS04zV1RGNlN0cmluZ0VSaQogX19a
TjdXZWJDb3JlMThIVE1MQ29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCi1fX1pO
N1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llczI2Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3lF
dgogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQxM2J1ZmZlckZvclR5cGVFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtUGFzdGVib2FyZDEzc3RyaW5nRm9yVHlw
ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkMTlzZXRQ
YXRobmFtZXNGb3JUeXBlRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVFRVJLUzNfCkBA
IC0xNDg4LDcgKzE0ODcsNiBAQCBfX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5
SWRFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aVFZON1dlYkNvcmUxMkNocm9tZUNsaWVudEUK
IF9fWlRWTjdXZWJDb3JlMTZJY29uRGF0YWJhc2VCYXNlRQogX19aVFZON1dlYkNvcmUxN0ZyYW1l
TG9hZGVyQ2xpZW50RQotX19aVFZON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llc0UKIF9fWlRW
TjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQogX19aVFZON1dlYkNvcmUyOElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw4U2V0dGluZ3NFCiBfZmlsZW5hbWVCeUZpeGluZ0ls
bGVnYWxDaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZmIxNmE1ZmY5Yzk1MDljZjliYmUw
ZmY0MDg5ZTQxZmY0MDA1MWEzMS4uYWQ3ZmM5NjFjNTkyNDczNTFjYjIxMmNiMDBkM2MwYmM0NDM0
YmU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjUyLDcgKzI1Miw2IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0N1cnNv
ci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oJywKLSAgICAgICAg
ICAgICdwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vRHJhZ0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0ltYWdl
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgnLApAQCAtMjY4LDcgKzI2
Nyw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vTGVuZ3RoQm94LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL0xlbmd0aFNpemUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTGlua0hhc2gu
aCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9Mb2dnaW5nLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5oJywKQEAgLTI3MzcsNyArMjczNSw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Jv
c3NUaHJlYWRDb3BpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Vyc29yLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9EcmFnRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdJbWFnZS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0V2ZW50TG9vcC5oJywKQEAgLTI3NjEsNyArMjc1
OCw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vTGFuZ3VhZ2UuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9MZW5ndGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9MaW5rSGFzaC5j
cHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9Mb2dnaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggNDk3YmIxMzkwMjZmNDA1ZGE1MTUz
YTZkOTczNjUxNDRiM2M4NmI4Yy4uM2Q5MWEzN2FjZTk0NTRmMzM0MTFkM2RlZTcxZTNjOGI5MmJl
M2JjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC01MzI5LDkgKzUzMjksNiBAQCBfX1pOSzdXZWJD
b3JlMTlBY2Nlc3NpYmlsaXR5T2JqZWN0MTVpc01lZGlhVGltZWxpbmVFdgogLVtBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciByb2xlRGVzY3JpcHRpb25dCiBfX1pON1dlYkNvcmUxM0FYSGVhZGlu
Z1RleHRFdgogX19aTjdXZWJDb3JlMjFoYXNQbGF0Zm9ybVN0cmF0ZWdpZXNFdgotX19aTjdXZWJD
b3JlMThQbGF0Zm9ybVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5QzFFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYSGVhZGluZ1RleHRFdgogX19aTks3V2Vi
Q29yZTI1QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDRzaXplRXYKIF9fWk5LN1dlYkNvcmUyNUFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxMWVsZW1lbnRSZWN0RXYKIF9fWk5LN1dlYkNvcmUxOUFj
Y2Vzc2liaWxpdHlPYmplY3QxM2lzUmFkaW9CdXR0b25FdgpAQCAtNjY4MCw3ICs2Njc3LDYgQEAg
X19aTks3V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIyNWlzTG9hZGluZ011bHRpcGFydENvbnRlbnRF
dgogX19aTks3V2ViQ29yZTRLVVJMMTdsYXN0UGF0aENvbXBvbmVudEV2CiBfX1pON1dlYkNvcmUy
NGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEw
aW1hZ2VUaXRsZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxMGltYWdlVGl0bGVFUktOM1dURjZTdHJpbmdFUktO
U183SW50U2l6ZUUKIF9fWk43V2ViQ29yZUwyMWZvcm1hdExvY2FsaXplZFN0cmluZ0VOM1dURjZT
dHJpbmdFegogX19aTjdXZWJDb3JlOERvY3VtZW50OHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgpAQCAtNjczMCw3ICs2NzI2LDYgQEAgX19aTjdX
ZWJDb3JlMTZKU0hUTUxQcmVFbGVtZW50MTVjcmVhdGVQcm90b3R5cGVFUE4zSlNDOUV4ZWNTdGF0
ZUVQTlMxXzE0SlNHbG9iYWwKIF9fWk43V2ViQ29yZTE2SlNIVE1MUHJlRWxlbWVudEMxRVBOM0pT
QzlTdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFTjNXVEYxMFBhc3NSZWZQdHJJTlNf
MTRIVE1MUHJlRWxlbWVudEVFRQogX19aTjdXZWJDb3JlMTJjYWNoZVdyYXBwZXJJTlNfMTRIVE1M
UHJlRWxlbWVudEVFRXZQTlNfMTVET01XcmFwcGVyV29ybGRFUFRfUE5TXzEySlNET01XcmFwcGVy
RQogX19aTjdXZWJDb3JlMTNBWFdlYkFyZWFUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MTNBWFdlYkFyZWFUZXh0RXYKIF9fWk43V2ViQ29yZTEwUmVuZGVy
VmlldzEzYWJzb2x1dGVRdWFkc0VSTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTG0wRUVFCiBf
X1pON1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxNmdldERvY3VtZW50TGlua3NF
Uk4zV1RGNlZlY3RvcklOUzFfNlJlZlB0cklOU18xOUFjY2Vzc2liaWxpdHlPYmplY3RFRUVMbTBF
RUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDVsaW5rc0V2CkBAIC02NzQwLDcgKzY3MzUsNiBAQCBf
X1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MTFsYXlvdXRDb3VudEV2CiBf
X1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MjRlc3RpbWF0ZWRMb2FkaW5n
UHJvZ3Jlc3NFdgogX19aTks3V2ViQ29yZTE1UHJvZ3Jlc3NUcmFja2VyMTdlc3RpbWF0ZWRQcm9n
cmVzc0V2CiBfX1pON1dlYkNvcmUxMEFYTGlua1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kxMEFYTGlua1RleHRFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJJ
bmxpbmUyNWN1bGxlZElubGluZUFic29sdXRlUmVjdHNFUEtTMF9STjNXVEY2VmVjdG9ySU5TXzdJ
bnRSZWN0RUxtMEVFRVJLTlNfN0ludFNpemVFCiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0MTlpbnRlcm5hbExpbmtFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUxN0hUTUxB
bmNob3JFbGVtZW50NGhyZWZFdgpAQCAtNjg5MSw5ICs2ODg1LDcgQEAgX19aTks3V2ViQ29yZTEz
SFRNTEhSRWxlbWVudDIzY2FuQ29udGFpblJhbmdlRW5kUG9pbnRFdgogX19aTks3V2ViQ29yZTE3
QWNjZXNzaWJpbGl0eUxpc3QxM2lzT3JkZXJlZExpc3RFdgogX19aTks3V2ViQ29yZTE3QWNjZXNz
aWJpbGl0eUxpc3QxNmlzRGVmaW5pdGlvbkxpc3RFdgogX19aTjdXZWJDb3JlMjRBWERlZmluaXRp
b25MaXN0VGVybVRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kyNEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dEV2CiBfX1pON1dlYkNvcmUzMEFYRGVmaW5pdGlv
bkxpc3REZWZpbml0aW9uVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTMwQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKIF9fWk43V2ViQ29yZTE5
SFRNTEZpZWxkU2V0RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTE3SFRNTExlZ2VuZEVsZW1lbnRE
MEV2CiBfX1pON1dlYkNvcmVMMTZ2aWRlb0NvbnN0cnVjdG9yRVJLTlNfMTNRdWFsaWZpZWROYW1l
RVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RWIKQEAgLTcxODIsNyArNzE3NCw2
IEBAIF9fWlRobjEyMF9ON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQzMG1lZGlhUGxheWVyTmV0
d29ya1N0YXRlQ2hhbmdlZEVQTlNfMTFNZWRpCiBfX1pON1dlYkNvcmUxMU1lZGlhUGxheWVyMTJu
ZXR3b3JrU3RhdGVFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTVzZXROZXR3b3Jr
U3RhdGVFTlNfMTFNZWRpYVBsYXllcjEyTmV0d29ya1N0YXRlRQogX19aTjdXZWJDb3JlMjhtZWRp
YUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5MjhtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKIF9fWk43V2ViQ29y
ZTM0TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzE5Y3JlYXRlQVZBc3NldEZvclVS
TEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTMwTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uMTdzZXREZWxheUNhbGxiYWNrc0ViCiBfX1pMMzhpbml0QVZVUkxBc3NldFJlZmVyZW5j
ZVJlc3RyaWN0aW9uc0tleXYKQEAgLTc0MTcsNyArNzQwOCw2IEBAIF9fWk5LN1dlYkNvcmUzNUFj
Y2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOXJvbGVWYWx1ZUV2CiBfX1pOSzdXZWJD
b3JlMzVBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjI0YWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uRXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29u
dGFpbmVyMTVlbGVtZW50VHlwZU5hbWVFdgogX19aTjdXZWJDb3JlMzRsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmdF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUR5bmFtaWNOb2RlTGlzdDE1aW52YWxpZGF0
ZUNhY2hlRXYKIF9fWk5LN1dlYkNvcmUyNE1lZGlhQ29udHJvbElucHV0RWxlbWVudDIxaXNNZWRp
YUNvbnRyb2xFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2wyMmFjY2Vzc2liaWxpdHlJc0lnbm9yZWRFdgpAQCAtNzU1NCwxNCArNzU0NCwxMiBAQCBfX1pO
N1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTRzdHlsZURpZENoYW5nZUVOU18xNVN0
eWxlRGlmZmVyZW5jZUVQS05TXwogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDE3dXBkYXRlRnJvbUVsZW1lbnRFdgogX19aTjdXZWJDb3JlMThTaGFkb3dJbnB1dEVsZW1lbnQ2
Y3JlYXRlRVBOU18xMUhUTUxFbGVtZW50RQogX19aTjdXZWJDb3JlMjVmaWxlQnV0dG9uQ2hvb3Nl
RmlsZUxhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjVm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsRXYKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxMnZhbHVl
Q2hhbmdlZEV2CiBfX1pON1dlYkNvcmUyMkhUTUxGb3JtQ29udHJvbEVsZW1lbnQxMXNldERpc2Fi
bGVkRWIKIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wyOWNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzRXYKIF9fWk5LN1dlYkNvcmUxM0ZpbGVJbnB1dFR5cGUxMmlzRmls
ZVVwbG9hZEV2CiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTFwYWludE9i
amVjdEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjlmaWxlQnV0dG9uTm9GaWxlU2Vs
ZWN0ZWRMYWJlbEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5
ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmpl
Y3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk43V2ViQ29yZTExUmVuZGVyQmxvY2sx
M2Fic29sdXRlUmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFRUVpaQogX19aVGhu
OF9ON1dlYkNvcmUxOUhUTUxUZXh0QXJlYUVsZW1lbnREMEV2CkBAIC03ODE3LDEwICs3ODA1LDcg
QEAgX19aTjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIx
RWRpdG9ySW50ZXJuYWxDb21tYW5kRUVOU18KIF9fWk4zV1RGOUhhc2hUYWJsZUlOU182U3RyaW5n
RVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVFTlNfMThQYWly
Rmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBhaXJIYXNoVHJh
aXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2bG9va3VwSVMxX05TXzIy
SWRlbnRpdHlIYXNoVHJhbnNsYXRvcklTMV9TN19TQV9FRUVFUFM3X1JLVF8KIF9fWk4zV1RGOUhh
c2hUYWJsZUlOU182U3RyaW5nRVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFs
Q29tbWFuZEVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFz
aEVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNE
X0U2cmVoYXNoRWkKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1
dGlvbnNFYgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k2c2hhcmVk
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVjb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uc0ViCiBfX1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRl
bVRhZ1Nob3dTcGVsbGluZ1BhbmVsRWIKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MzVjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbEViCiBfX1pON1dl
YkNvcmVMMjJjZW50ZXJUcnVuY2F0ZVRvQnVmZmVyRVJLTjNXVEY2U3RyaW5nRWpqUHQKIF9fWk43
V2ViQ29yZTExaXNUZXh0QnJlYWtFUE5TXzE3VGV4dEJyZWFrSXRlcmF0b3JFaQogX19aTjdXZWJD
b3JlMTVTUUxpdGVTdGF0ZW1lbnQ4YmluZE51bGxFaQpAQCAtMTE5NTAsNyArMTE5MzUsNiBAQCBf
X1pON1dlYkNvcmUyMmpzSFRNTENvbGxlY3Rpb25MZW5ndGhFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBf
N0pTVmFsdWVFUktOUzBfMTBJZGVudAogX19aTks3V2ViQ29yZTE3SFRNTE9iamVjdEVsZW1lbnQx
OGNvbnRhaW5zSmF2YUFwcGxldEV2CiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0
MzBzZXRTaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdtaXNzaW5n
UGx1Z2luVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3
bWlzc2luZ1BsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDEz
cGFpbnRSZXBsYWNlZEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJl
ZGRlZE9iamVjdDI2Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnlFaWlSTlNfOUZsb2F0UmVjdEVS
TlNfNFBhdGhFUzJfUk5TXzRGb250RVJOU183VGV4dFJ1bkVSZgogX19aTjdXZWJDb3JlNFBhdGgx
NGFkZFJvdW5kZWRSZWN0RVJLTlNfOUZsb2F0UmVjdEVSS05TXzlGbG9hdFNpemVFCkBAIC0xMjM3
MCw3ICsxMjM1NCw2IEBAIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxOWFsdEF0dHJpYnV0ZUNoYW5n
ZWRFdgogX19aTjNXVEY2U3RyaW5nMTBtYWtlU2VjdXJlRXQKIF9fWk43V2ViQ29yZTlJbnB1dFR5
cGUyN3Nob3VsZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZUV2CiBfX1pON1dlYkNvcmUxOWlucHV0RWxl
bWVudEFsdFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kx
OWlucHV0RWxlbWVudEFsdFRleHRFdgogX19aTks3V2ViQ29yZTE3UmVuZGVyVGV4dENvbnRyb2wz
NnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbkV2CiBfX1pON1dlYkNvcmUzMGpz
SFRNTElucHV0RWxlbWVudERlZmF1bHRWYWx1ZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1
ZUVSS05TMF8xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzMmpzSFRNTElucHV0RWxlbWVudERl
ZmF1bHRDaGVja2VkRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRp
ZmllckUKQEAgLTE1MDg2LDExICsxNTA2OSw4IEBAIF9fWk43V2ViQ29yZTE3SFRNTEtleWdlbkVs
ZW1lbnQ2Y3JlYXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1CiBf
X1pON1dlYkNvcmUxN0hUTUxLZXlnZW5FbGVtZW50QzJFUktOU18xM1F1YWxpZmllZE5hbWVFUE5T
XzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pON1dlYkNvcmUyMGdldFN1cHBv
cnRlZEtleVNpemVzRVJOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0wRUVFCiBfX1pON1dlYkNv
cmUxOGtleWdlbk1lbnVJdGVtMjA0OEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKIF9fWk43V2ViQ29yZTE4a2V5Z2VuTWVu
dUl0ZW0xMDI0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MThr
ZXlnZW5NZW51SXRlbTEwMjRFdgogX19aTjdXZWJDb3JlMTdrZXlnZW5NZW51SXRlbTUxMkV2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3a2V5Z2VuTWVudUl0ZW01
MTJFdgogX19aTjdXZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudEMyRVJLTlNfMTNRdWFsaWZpZWRO
YW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdXZWJDb3JlMTdI
VE1MT3B0aW9uRWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1l
bnRFCiBfX1pON1dlYkNvcmUxM1NlbGVjdEVsZW1lbnQxM2Rlc2VsZWN0SXRlbXNFUk5TXzE3U2Vs
ZWN0RWxlbWVudERhdGFFUE5TXzdFbGVtZW50RVM0XwpAQCAtMTU1NzEsNjAgKzE1NTUxLDM0IEBA
IF9fWk43V2ViQ29yZTExQ29udGV4dE1lbnVDMUV2CiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51
QzJFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXI4cG9wdWxhdGVFdgogX19a
TjdXZWJDb3JlMjZjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0V2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI2Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtFdgog
X19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1DMUVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVF
TlNfMTdDb250ZXh0TWVudUFjdGlvbkVSS04zV1RGNlN0cmluZ0VQTlNfMTFDb250ZXh0TWVudUUK
IF9fWk43V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtQzJFTlNfMTlDb250ZXh0TWVudUl0ZW1UeXBl
RU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFUE5TXzExQ29udGV4dE1lbnVF
CiBfX1pON1dlYkNvcmVMMzNjcmVhdGVQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb25FTlNfMTlD
b250ZXh0TWVudUl0ZW1UeXBlRU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdF
YmIKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvd0V2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzNmNvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkTGlua1RvRGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrRXYKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZEV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUxpbmtUb0NsaXBib2FyZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5J
bWFnZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNv
cmUzN2NvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2tFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
SW1hZ2VUb0Rpc2tFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VU
b0NsaXBib2FyZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4
Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmRFdgogX19aTjdXZWJDb3JlMjdj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2CiBfX1pON1dlYkNv
cmUyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlRXYKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sc0V2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9sc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMz
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4
dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2Ny
ZWVuRXYKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVt
VGFnU2VhcmNoV2ViRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mjdjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgogX19aTjdXZWJDb3JlMjJjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MjJjb250ZXh0TWVudUl0ZW1UYWdDb3B5RXYKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVt
VGFnR29CYWNrRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRj
b250ZXh0TWVudUl0ZW1UYWdHb0JhY2tFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1U
YWdHb0ZvcndhcmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ky
N2NvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZEV2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51
SXRlbVRhZ1N0b3BFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ky
MmNvbnRleHRNZW51SXRlbVRhZ1N0b3BFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1U
YWdSZWxvYWRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNv
bnRleHRNZW51SXRlbVRhZ1JlbG9hZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRh
Z09wZW5GcmFtZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvd0V2CiBfX1pO
N1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNz
ZXNGb3VuZEV2CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5n
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVu
dUl0ZW1UYWdJZ25vcmVTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRh
Z0xlYXJuU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kzMWNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlMzFjb250
ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyRXYKIF9fWk43
V2ViQ29yZTIxY29udGV4dE1lbnVJdGVtVGFnQ3V0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MjFjb250ZXh0TWVudUl0ZW1UYWdDdXRFdgogX19aTjdXZWJDb3Jl
MjNjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTIzY29udGV4dE1lbnVJdGVtVGFnUGFzdGVFdgogX19aTks3V2ViQ29yZTEz
SGl0VGVzdFJlc3VsdDE3aXNDb250ZW50RWRpdGFibGVFdgogX19aTks3V2ViQ29yZTIxQ29udGV4
dE1lbnVDb250cm9sbGVyMjFjaGVja09yRW5hYmxlSWZOZWVkZWRFUk5TXzE1Q29udGV4dE1lbnVJ
dGVtRQogX19aTks3V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtNHR5cGVFdgpAQCAtMTU2MzgsNyAr
MTU1OTIsNiBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTJtZWRpYUVsZW1lbnRFdgog
X19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRN
ZW51Q29udHJvbGxlcjIxYWRkSW5zcGVjdEVsZW1lbnRJdGVtRXYKIF9fWk43V2ViQ29yZTMyY29u
dGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50RXYKIF9f
Wk5LN1dlYkNvcmUxMUNvbnRleHRNZW51MTlwbGF0Zm9ybURlc2NyaXB0aW9uRXYKIF9fWk43V2Vi
Q29yZTExQ29udGV4dE1lbnUyMnNldFBsYXRmb3JtRGVzY3JpcHRpb25FUDE0TlNNdXRhYmxlQXJy
YXkKIF9fWk43V2ViQ29yZThEb2N1bWVudDIzYWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWRFUE5TXzRO
b2RlRQpAQCAtMTYyMTAsMTYgKzE2MTYzLDExIEBAIF9fWk5LN1dlYkNvcmUxOFRleHRDaGVja2lu
Z0hlbHBlcjQwZ3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZUViUmJTCiBf
X1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTRyZXBsYWNlZFN0cmluZ0V2CiBfX1pON1dlYkNv
cmVMMjlzZWxlY3Rpb25Db250YWluc1Bvc3NpYmxlV29yZEVQTlNfNUZyYW1lRQogX19aTjdXZWJD
b3JlMzBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudUV2
CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjQwY3JlYXRlQW5kQXBwZW5kU3Bl
bGxpbmdBbmRHcmFtbWFyU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNv
cmUzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdF
dgogX19aTjdXZWJDb3JlNDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBp
bmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k0MmNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRl
eHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFy
V2l0aFNwZWxsaW5nRXYKIF9fWk43V2ViQ29yZTQ2Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNw
ZWxsaW5nQXV0b21hdGljYWxseUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTQ2Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseUV2
CiBfX1pON1dlYkNvcmU2RWRpdG9yMjJzcGVsbGluZ1BhbmVsSXNTaG93aW5nRXYKIF9fWk43V2Vi
Q29yZTE1Q29udGV4dE1lbnVJdGVtOHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJD
b3JlNkVkaXRvcjI0aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkRXYKQEAgLTE2MjI3LDY2ICsxNjE3
NSw0MSBAQCBfX1pON1dlYkNvcmU2RWRpdG9yMzZpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlv
bkVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW0xMHNldFN1Yk1lbnVFUE5T
XzExQ29udGV4dE1lbnVFCiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51RDFFdgogX19aTjdXZWJD
b3JlMzVjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0
aW9uc01lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIzNWNyZWF0ZUFu
ZEFwcGVuZFN1YnN0aXR1dGlvbnNTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43
V2ViQ29yZTMyY29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29w
eVBhc3RlRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXNFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0UXVvdGVzRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRE
YXNoZXNFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRl
eHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVt
VGFnU21hcnRMaW5rc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRN
ZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50RXYKIF9fWk43
V2ViQ29yZTZFZGl0b3IyN3N1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZ0V2CiBfX1pON1dlYkNv
cmU2RWRpdG9yMzVpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZEV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMzRpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkRXYKIF9fWk43
V2ViQ29yZTZFZGl0b3IzMWlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRFdgogX19aTjdX
ZWJDb3JlNkVkaXRvcjMzaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkRXYKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudUV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVHJh
bnNmb3JtYXRpb25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjM3
Y3JlYXRlQW5kQXBwZW5kVHJhbnNmb3JtYXRpb25zU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0
ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2VFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRh
Z01ha2VVcHBlckNhc2VFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93
ZXJDYXNlRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250
ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJ
dGVtVGFnQ2FwaXRhbGl6ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTI4Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZUV2CiBfX1pON1dlYkNvcmUyNmNvbnRl
eHRNZW51SXRlbVRhZ0ZvbnRNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjZjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudUV2CiBfX1pON1dlYkNvcmUyMUNv
bnRleHRNZW51Q29udHJvbGxlcjI2Y3JlYXRlQW5kQXBwZW5kRm9udFN1Yk1lbnVFUk5TXzE1Q29u
dGV4dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHNF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51
SXRlbVRhZ1Nob3dGb250c0V2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0JvbGRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRNZW51
SXRlbVRhZ0JvbGRFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWNFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRl
bVRhZ0l0YWxpY0V2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZUV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJ
dGVtVGFnVW5kZXJsaW5lRXYKIF9fWk43V2ViQ29yZTI1Y29udGV4dE1lbnVJdGVtVGFnT3V0bGlu
ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI1Y29udGV4dE1l
bnVJdGVtVGFnT3V0bGluZUV2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1N0eWxl
c0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1l
bnVJdGVtVGFnU3R5bGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU2hvd0Nv
bG9yc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4
dE1lbnVJdGVtVGFnU2hvd0NvbG9yc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRh
Z1NwZWVjaE1lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ky
OGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVu
dUNvbnRyb2xsZXIyOGNyZWF0ZUFuZEFwcGVuZFNwZWVjaFN1Yk1lbnVFUk5TXzE1Q29udGV4dE1l
bnVJdGVtRQogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nRXYK
LV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0
ZW1UYWdTdGFydFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwY29udGV4dE1lbnVJdGVtVGFnU3Rv
cFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
RVJLTjNXVEY2VmVjdG9ySU5TMF82U3RyaW5nRUxtMEVFRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZ0V2CiBf
X1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51RXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1U
YWdXcml0aW5nRGlyZWN0aW9uTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJv
bGxlcjM4Y3JlYXRlQW5kQXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnVFUk5TXzE1Q29udGV4
dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMzRjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0
aW9uRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzRjb250ZXh0
TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJ
dGVtVGFnTGVmdFRvUmlnaHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2ViQ29yZTI5Y29u
dGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0RXYKIF9fWk5LN1dl
YkNvcmU2RWRpdG9yMTZoYXNCaWRpU2VsZWN0aW9uRXYKIF9fWk5LN1dlYkNvcmUxM0tleWJvYXJk
RXZlbnQ4Y2hhckNvZGVFdgogX19aTjdXZWJDb3JlMThqc0RPTVNlbGVjdGlvblR5cGVFUE4zSlND
OUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTYyOTUsNyAr
MTYyMTgsNiBAQCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJCbG9jazI0Y29udGFpbnNOb25aZXJvQmlk
aUxldmVsRXYKIF9fWk5LN1dlYkNvcmUxOUFwcGx5UHJvcGVydHlMZW5ndGhJTE5TXzEwTGVuZ3Ro
QXV0b0UxRUxOU18xNUxlbmd0aEludHJpbnNpY0UxRUxOU18xOExlbmd0aE1pbkludHJpbnNpY0Ux
RUxOU18xMExlbmd0aE5vbmVFMUVMTlNfMTVMZW5ndGhVbmRlZmluZWRFMUVFMTBhcHBseVZhbHVl
RVBOU18xNkNTU1N0eWxlU2VsZWN0b3JFUE5TXzhDU1NWYWx1ZUUKIF9fWk43V2ViQ29yZTExUmVu
ZGVyU3R5bGUxMXNldE1heFdpZHRoRU5TXzZMZW5ndGhFCiBfX1pON1dlYkNvcmUzNmNvbnRleHRN
ZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJ
bkRpY3Rpb25hcnlFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMjZoYXNJbnNwZWN0b3JGcm9udGVuZENsaWVudEV2CiBfX1pOSzdXZWJDb3JlMjFCYWNr
Rm9yd2FyZENvbnRyb2xsZXIxOGNhbkdvQmFja09yRm9yd2FyZEVpCiBfX1pOSzdXZWJDb3JlNFBh
Z2UxOGNhbkdvQmFja09yRm9yd2FyZEVpCkBAIC0xNzA2Myw3ICsxNjk4NSw2IEBAIF9fWk43V2Vi
Q29yZTE0U1ZHU01JTEVsZW1lbnQyMGRpc2Nvbm5lY3RDb25kaXRpb25zRXYKIF9fWk43V2ViQ29y
ZTE3U01JTFRpbWVDb250YWluZXIxMHVuc2NoZWR1bGVFUE5TXzE0U1ZHU01JTEVsZW1lbnRFCiBf
X1pOSzdXZWJDb3JlMTdSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gxMHJlbmRlck5hbWVFdgog
X19aTjdXZWJDb3JlMjdzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb25FdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN3NlYXJjaGFibGVJbmRleEludHJvZHVjdGlv
bkV2CiBfX1pON1dlYkNvcmUxNFJlbmRlclJ1YnlUZXh0QzFFUE5TXzROb2RlRQogX19aTks3V2Vi
Q29yZTEzUmVuZGVyUnVieVJ1bjExaGFzUnVieVRleHRFdgogX19aTks3V2ViQ29yZTE0UmVuZGVy
UnVieVRleHQxMGlzUnVieVRleHRFdgpAQCAtMTg5NjksNyArMTg4OTAsNiBAQCBfX1pON1dlYkNv
cmU4TG9jYXRpb243c2V0SHJlZkVSS04zV1RGNlN0cmluZ0VQTlNfOURPTVdpbmRvd0VTNl8KIF9f
Wk43V2ViQ29yZTE3U3R5bGVQZW5kaW5nSW1hZ2UxMnJlbW92ZUNsaWVudEVQTlNfMTJSZW5kZXJP
YmplY3RFCiBfX1pON1dlYkNvcmUxNVN1Ym1pdElucHV0VHlwZTEyZGVmYXVsdFZhbHVlRXYKIF9f
Wk43V2ViQ29yZTI0c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWxFdgogX19a
Tks3V2ViQ29yZTExUmVuZGVyVGFibGUyMGZpcnN0TGluZUJveEJhc2VsaW5lRXYKIF9fWk5LN1dl
YkNvcmUxOFJlbmRlclRhYmxlU2VjdGlvbjIwZmlyc3RMaW5lQm94QmFzZWxpbmVFdgogX19aTks3
V2ViQ29yZTE1UmVuZGVyV29yZEJyZWFrMTByZW5kZXJOYW1lRXYKQEAgLTE5NDU1LDcgKzE5Mzc1
LDYgQEAgX19aTjdXZWJDb3JlTDIyVG9wR3JhZGllbnRJbnRlcnBvbGF0ZUVQdlBLZFBkCiBfX1pO
N1dlYkNvcmVMMjVCb3R0b21HcmFkaWVudEludGVycG9sYXRlRVB2UEtkUGQKIF9fWk43V2ViQ29y
ZTE0UmVzZXRJbnB1dFR5cGUxMmRlZmF1bHRWYWx1ZUV2CiBfX1pON1dlYkNvcmUyM3Jlc2V0QnV0
dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5MjNyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbEV2CiBfX1pON1dlYkNvcmUxMlVSTElucHV0VHlw
ZTZjcmVhdGVFUE5TXzE2SFRNTElucHV0RWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxMlVSTElucHV0
VHlwZTE1Zm9ybUNvbnRyb2xUeXBlRXYKIF9fWk43V2ViQ29yZTE0SW5wdXRUeXBlTmFtZXMzdXJs
RXYKQEAgLTI1MjIxLDcgKzI1MTQwLDYgQEAgX19aTjdXZWJDb3JlMTNKU0V2ZW50U291cmNlRDFF
dgogX19aTjdXZWJDb3JlMTFFdmVudFNvdXJjZUQwRXYKIF9fWk5LM0pTQzE0SlNHbG9iYWxPYmpl
Y3QxNGlzR2xvYmFsT2JqZWN0RXYKIF9fWk43V2ViQ29yZTIybXVsdGlwbGVGaWxlVXBsb2FkVGV4
dEVqCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIybXVsdGlwbGVG
aWxlVXBsb2FkVGV4dEVqCiBfX1pON1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDIyY2FsY1ZlcnRpY2FsUHJlZldpZHRoc0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0eWxlMTVz
ZXRCb3hGbGV4R3JvdXBFagogX19aTks3V2ViQ29yZTEzUmVuZGVyTGlzdEJveDEwcmVuZGVyTmFt
ZUV2CkBAIC0yNTQ5OCw3ICsyNTQxNiw2IEBAIF9fWk43V2ViQ29yZTIySFRNTEZvcm1Db250cm9s
RWxlbWVudDMwdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlRXYKIF9fWk5LN1dlYkNvcmUx
NkhUTUxJbnB1dEVsZW1lbnQxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTks3V2ViQ29yZTlJbnB1
dFR5cGUxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3JlMzN2YWxpZGF0aW9uTWVzc2Fn
ZVZhbHVlTWlzc2luZ1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pON1dlYkNvcmUx
N1ZhbGlkYXRpb25NZXNzYWdlNmNyZWF0ZUVQTlNfMjFGb3JtQXNzb2NpYXRlZEVsZW1lbnRFCiBf
X1pON1dlYkNvcmUxN1ZhbGlkYXRpb25NZXNzYWdlMTBzZXRNZXNzYWdlRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlNVRpbWVySU5TXzE3VmFsaWRhdGlvbk1lc3NhZ2VFRTVmaXJlZEV2CkBA
IC0yNTYwOCwxMSArMjU1MjUsOSBAQCBfX1pON1dlYkNvcmU0NHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNFJhZGlvSW5wdXRUeXBl
MTZ2YWx1ZU1pc3NpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1lc3NhZ2VWYWx1
ZU1pc3NpbmdGb3JSYWRpb1RleHRFdgogX19aTjdXZWJDb3JlMzZ2YWxpZGF0aW9uTWVzc2FnZVBh
dHRlcm5NaXNtYXRjaFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kzNnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2CiBfX1pOSzdXZWJD
b3JlMTZIVE1MSW5wdXRFbGVtZW50MTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUx
NEVtYWlsSW5wdXRUeXBlMTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4
dEV2CiBfX1pON1dlYkNvcmUzOGpzSFRNTEZpZWxkU2V0RWxlbWVudFZhbGlkYXRpb25NZXNzYWdl
RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43
V2ViQ29yZTM2anNIVE1MS2V5Z2VuRWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBOM0pTQzlFeGVj
U3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMzanNI
VE1MRmllbGRTZXRFbGVtZW50V2lsbFZhbGlkYXRlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1Zh
bHVlRVJLTlMwXzEwSWRlbnRpZmllckUKQEAgLTI4NjExLDcgKzI4NTI2LDYgQEAgX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjIyZmluZEZyYW1lRm9yTmF2aWdhdGlvbkVSS04zV1RGMTJBdG9taWNT
dHJpbmdFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIzdGhyb3dJbnZhbGlkQWNj
ZXNzRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2Jq
ZWN0MzBzZXRTaG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdjcmFz
aGVkUGx1Z2luVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTE3Y3Jhc2hlZFBsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMTZTY3JpcHRDb250cm9sbGVyMTFj
cmVhdGVXb3JsZEV2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjBhZGRVc2VyU2NyaXB0VG9Xb3Js
ZEVQTlNfMTVET01XcmFwcGVyV29ybGRFUktOM1dURjZTdHJpbmdFUktOU180S1VSTEVOUzNfMTBQ
YXNzT3duUHRySU5TM182VmVjdG9ySVM0X0xtMEVFRUVFU0RfTlNfMjNVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZUVOU18yNVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dlYkNvcmUxMFVz
ZXJTY3JpcHRDMkVSS04zV1RGNlN0cmluZ0VSS05TXzRLVVJMRU5TMV8xMFBhc3NPd25QdHJJTlMx
XzZWZWN0b3JJUzJfTG0wRUVFRUVTQl9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRU5TXzI1
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lc0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMDcwYWIzZjk2MTkxYjYzMWUwNTAzOTZiYTkyMTMxNzVl
MTg3YjY0OC4uMTczNWE4YjFiYjg3ZDJkMDc3MmMzZDJjYTkyMjcyZGM3NDg2YjRhMCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2NTU4LDE0
ICsyNjU1OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBsYXRmb3JtXERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxEcmFnRGF0YS5jcHAiCiAJCQkJPgogCQkJPC9G
aWxlPgpAQCAtMjY3MDYsMTAgKzI2Njk4LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIK
LQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZv
cm1cTG9jYWxpemVkU3RyaW5ncy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRlYzE3NGZi
MDFjOTFlZTcyMmE5OTFjMWU3NWI3NzdiMGE3ZmY4Y2EuLmVlNThhNzIyMWY2MGIyYmZlYjRkMGJk
MjBiZTk2YWRlMmFmMWIxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxNTQsNyArNTE1NCw2IEBACiAJCUJDNUE4NkI2MEMz
MzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9N
U2VsZWN0aW9uLmggKi87IH07CiAJCUJDNUM3NjJBMTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9y
bUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNUM3NjI4MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNwcCAqLzsgfTsKIAkJ
QkM1Qzc2MkIxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3
NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0
cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzVFQjVEQjBFODFC
N0VBMDBCMjU5NjUgLyogQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
NUVCNUREMEU4MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURDMEU4MUI4REQwMEIyNTk2NSAv
KiBPdXRsaW5lVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzVFQjVERjBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVC
NURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MzU4LDggKzUzNTcsNiBA
QAogCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBD
RDJEODcgLyogSlNDbGllbnRSZWN0LmggKi87IH07CiAJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4
NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RM
aXN0LmNwcCAqLzsgfTsKIAkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVj
dExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJD
QzM2RUI4MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMzZFQjYx
MzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgKi87IH07
Ci0JCUJDQzM2RUI5MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzM2
RUI3MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsg
fTsKIAkJQkNDNDM4NzgwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M0
Mzg3NzBFODg2Q0M3MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsg
fTsKIAkJQkNDNTczMzUwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzMzMEQ2OTVC
QkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUJDQzU3MzM2MEQ2OTVC
QkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVBy
b2dyZXNzRXZlbnQubW0gKi87IH07CkBAIC0xMjA3Miw3ICsxMjA2OSw2IEBACiAJCUJDNUE4NkI0
MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNET01TZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM1Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1FdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0
Zm9ybUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM1Q0ZDQTgxMUY3OTMzMjAwOTlF
RDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExvY2FsaXphdGlvblN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5bGUvQm9yZGVy
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REMwRTgxQjhERDAw
QjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBPdXRsaW5lVmFsdWUuaDsgcGF0aCA9IHN0eWxlL091dGxpbmVWYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUuaDsgcGF0aCA9IHN0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjI5Nyw4ICsxMjI5Myw2IEBACiAJCUJDQzA2NTg0
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNDbGllbnRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlND
bGllbnRSZWN0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVu
dFJlY3RMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzM2RUI2MTM0MkFB
M0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3
IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxl
bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hU
TUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NUHJvZ3Jl
c3NFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzcxLDggKzE5NzY1
LDYgQEAKIAkJCQlGNTg3ODY4NDAyREUzQjg2MDFFQTQxMjIgLyogQ3Vyc29yLmggKi8sCiAJCQkJ
QTU3MzJCMDgxMzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCAqLywKIAkJCQlB
NTczMkIwOTEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLywKLQkJCQlCQ0Mz
NkVCNjEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCAq
LywKLQkJCQlCQ0MzNkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmggKi8sCiAJCQkJQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNw
cCAqLywKIAkJCQlBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCAqLywKIAkJ
CQlBN0NGQjNDRjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmNwcCAqLywKQEAgLTE5ODA2
LDcgKzE5Nzk4LDYgQEAKIAkJCQlCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6
ZS5oICovLAogCQkJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgKi8s
CiAJCQkJQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi8sCi0JCQkJQkM1
Q0ZDQTgxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8sCiAJCQkJ
QzA0NkUxQUIxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovLAogCQkJ
CTkzNTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8sCiAJCQkJ
QTgyMzlERkUwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovLApAQCAtMjE0ODEsNyAr
MjE0NzIsNiBAQAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3Jr
ZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcg
LyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDA2REZBNjEz
NEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEg
LyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
MzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwMkUxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9kZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMzE2Nyw3ICsyMzE1Nyw2IEBACiAJCQkJMDZFODFFRDcwQUI1RDVFOTAwQzg3ODM3
IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzYz
M0E3MjYxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXph
dGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTczMkIwRDEzNkExNkM0MDA1QzhE
N0MgLyogTG9jYWxpemVkRGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxNDJDNjkxMjNGMTJC
MDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3
QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLApA
QCAtMjQ4ODMsNyArMjQ4NzIsNiBAQAogCQkJCTQxNjJBNDUwMTAxMTQ1QUUwMERGRjNFRCAvKiBE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQTNENThFMTAx
QzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0MzNkVCODEzNDJBQTNGMDA0QkVFRjcgLyog
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNjdF
QkY1MTAyOTYyQkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAyQjEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlEU1BL
ZXJuZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkQxMkIwMjY3NjAwQzFBMzU5IC8q
IERlbGF5Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhYTNhNDg2MDQ5NDEyYWEwMTU0M2IyYzJkOGJjZDJiNGY2ZGFjY2U0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw5NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQotI2lmIFVT
RShQTEFURk9STV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUg
IkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVy
TmFtZXMuaD4KLSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KLQotI2lmIFVTRShDRikKLSNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNp
bmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi0vLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3byByZWFzb25z
OgotLy8gIDEpIEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBm
b3JtYXQgc3RyaW5nLgotLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRkIHN5bnRheC4K
LS8vIE5vdGUgdGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNlY29uZCBwYXJh
bWV0ZXIgdG8gdmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQotLy8gdHlwZSBhY2Nv
cmRpbmcgdG8gc2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFyZC4KLXN0YXRp
YyBTdHJpbmcgZm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4uLikKLXsKLSNp
ZiBVU0UoQ0YpCi0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3RhcnQoYXJndW1lbnRz
LCBmb3JtYXQpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZTdHJpbmcoQWRv
cHRDRiwgZm9ybWF0LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygw
LCAwLCBmb3JtYXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7Ci0gICAgdmFfZW5kKGFyZ3Vt
ZW50cyk7Ci0gICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAg
IHZhX2xpc3QgYXJndW1lbnRzOwotICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKLSAg
ICBRU3RyaW5nIHJlc3VsdDsKLSAgICByZXN1bHQudnNwcmludGYoZm9ybWF0LmxhdGluMSgpLmRh
dGEoKSwgYXJndW1lbnRzKTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICByZXR1cm4gcmVz
dWx0OwotI2Vsc2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmb3JtYXQ7Ci0j
ZW5kaWYKLX0KLQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLXN0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3RyaW5n
Rm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKLXsKLSAgICBpZiAob3Jp
Z2luYWwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gb3JpZ2luYWw7Ci0gICAgCi0gICAgLy8g
VHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3Rl
bmN5IHdpdGggQXBwS2l0LgotICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVy
c0luTG9va3VwTWVudUl0ZW0gPSAyNDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
ZWxsaXBzaXMsICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7Ci0gICAgCi0gICAgU3RyaW5nIHRy
aW1tZWQgPSBvcmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICB1bnNpZ25lZCBudW1iZXJP
ZkNoYXJhY3RlcnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1h
eE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOwotICAgIHJldHVybiBu
dW1iZXJPZkNoYXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQgOiB0cmltbWVk
LmxlZnQobnVtYmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwotfQotI2VuZGlmCi0KLURlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneSYgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzaGFy
ZWQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5LCBkZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksICgpKTsKLSAgICByZXR1cm4gZGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OwotfQotCi1EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneSgpCi17Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkiLCAiYWx0
IHRleHQgZm9yIDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpyZXNldEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1
bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaGFibGVJbmRleEludHJv
ZHVjdGlvbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgaXMgYSBzZWFyY2hh
YmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsCi0gICAgICAgICJ0ZXh0IHRoYXQg
YXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUg
Zm9ybSBvZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRv
bnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9v
c2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBt
dWx0aXBsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRs
ZSBzaG91bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRp
c3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBz
ZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxl
QnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNl
ZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9u
IGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
PGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotI2lm
IFBMQVRGT1JNKE1BQykKLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvcHlJ
bWFnZVVua25vd25GaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtu
b3duIiwgIlVua25vd24gZmlsZW5hbWUiKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlua2VkIEZpbGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi0jaWYgUExBVEZPUk0oUVQpCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdl
IEFkZHJlc3MgbWVudSBpdGVtIik7Ci19Ci0jZW5kaWYKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciLCAi
T3BlbiBWaWRlbyBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRp
b0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBp
biBOZXcgV2luZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDb3B5IFZpZGVvIEFkZHJlc3MiLCAiQ29weSBWaWRlbyBBZGRyZXNzIExvY2F0aW9u
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJDb3B5IEF1ZGlv
IEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250
cm9scygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENv
bnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQ
bGF5IiwgIk1lZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Ik11dGUiLCAiTWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5l
d1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3
IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnQ29weSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJCYWNrIiwgIkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ1N0b3AoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIiwgIlN0
b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ1Bhc3RlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFz
dGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotI2lmIFBMQVRGT1JNKEdUSykKLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiRGVsZXRlIjsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSW5wdXRN
ZXRob2RzKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiSW5wdXQgTWV0
aG9kcyI7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ1VuaWNvZGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
ICJVbmljb2RlIjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFFUKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdTZWxlY3RBbGwoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJT
ZWxlY3QgQWxsIjsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
TGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
U2VhcmNoV2ViKCkKLXsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlEZWZh
dWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxp
emVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNl
YXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0
ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUgY29udGV4
dCBtZW51IGl0ZW0iKTsKLSNlbmRpZgotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5n
JiBzZWxlY3RlZFN0cmluZykKLXsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8
IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIFVOVVNFRF9QQVJBTShzZWxl
Y3RlZFN0cmluZyk7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAgaW4gRGljdGlv
bmFyeSIsICJMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLSNlbHNl
Ci0jaWYgVVNFKENGKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VsZWN0ZWRDRlN0cmlu
ZyhBZG9wdENGLCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmlu
ZykuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhX
RUJfVUlfU1RSSU5HKCJMb29rIFVwIOKAnCVA4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0
ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOwotI2Vsc2UK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCDigJw8c2VsZWN0aW9uPuKAnSIsICJM
b29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLnJlcGxhY2UoIjxz
ZWxlY3Rpb24+IiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJp
bmcpKTsKLSNlbmRpZgotI2VuZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdJ
Z25vcmVHcmFtbWFyKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIEdyYW1t
YXIiLCAiSWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAi
U3BlbGxpbmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVs
bGluZ1BhbmVsKGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxl
Iik7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIi
LCAibWVudSBpdGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNw
ZWxsaW5nIHdoaWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJX
aXRoU3BlbGxpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFy
IFdpdGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9u
dCIsICJGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0l0
YWxpYygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPdXRs
aW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiUGFyYWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0
aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9u
IGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5n
IGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi0jaWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3Rs
aWdodCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJTaG93IEZvbnRzIiwgIlNob3cgZm9udHMgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJ
dGVtVGFnU3R5bGVzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3R5bGVzLi4uIiwg
IlN0eWxlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNw
ZWVjaCIsICJTcGVlY2ggY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmco
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdGFydCBTcGVha2luZyIsICJTdGFydCBz
cGVha2luZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIsICJD
b3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3Vi
c3RpdHV0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJzdGl0dXRp
b25zIiwgIlN1YnN0aXR1dGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJz
dGl0dXRpb25zKGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykgCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJTaG93IFN1YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0g
dGl0bGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTbWFydCBDb3B5L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFzdGUgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJ
dGVtVGFnU21hcnRRdW90ZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBR
dW90ZXMiLCAiU21hcnQgUXVvdGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVz
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERh
c2hlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3MgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
VGV4dCBSZXBsYWNlbWVudCIsICJUZXh0IFJlcGxhY2VtZW50IGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJU
cmFuc2Zvcm1hdGlvbnMiLCAiVHJhbnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdNYWtlVXBwZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBV
cHBlciBDYXNlIiwgIk1ha2UgVXBwZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtl
TG93ZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBMb3dlciBDYXNl
IiwgIk1ha2UgTG93ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkK
LXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2FwaXRhbGl6ZSIsICJDYXBpdGFsaXplIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0
cmluZykKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiByZXBsYWNlZFN0cmlu
ZzsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiSW5zcGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJl
bCBmb3Igb25seSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhl
IHNlYXJjaCBmaWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVk
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVS
ZWNlbnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQg
U2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJz
IHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRl
ZCBtZW51IHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNsZWFyIFJlY2VudCBTZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNl
YXJjaGVzIG1lbnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFdlYkFyZWFUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiSFRNTCBjb250ZW50IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNj
cmlwdGlvbiBmb3Igd2ViIGFyZWEiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6QVhMaW5rVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpbmsi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlzdE1hcmtlclRleHQoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJsaXN0IG1hcmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIGxpc3QgbWFya2VyIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1h
Z2UgbWFwIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYSGVh
ZGluZ1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGluZ3MiKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0
aW9uIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYRGVmaW5p
dGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRl
ZmluaXRpb24iLCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKLX0KLQotI2lmIFBMQVRGT1JNKE1BQykK
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSkKLXsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFB
cHBsaWNhdGlvbkFsZXJ0IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0Iiwg
IkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7Ci0g
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFU
eXBlID09ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMg
YW4gZGlhbG9nLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxp
dHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgY29uc29sZSBsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBQXBwbGljYXRpb25NYXJxdWVlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIm1hcnF1ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
IG1hcnF1ZWUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uU3Rh
dHVzIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIHN0YXR1cyIs
ICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgc3RhdHVzIHVwZGF0
ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25UaW1lciIpCi0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lciIsICJBbiBBUklBIGFjY2Vzc2liaWxp
dHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIHVwZGF0aW5nIHRpbWVyLiIpOyAgICAKLSAgICBpZiAo
YXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEg
ZG9jdW1lbnQuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50QXJ0aWNs
ZSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsgICAgCi0gICAgaWYg
KGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnROb3RlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIm5vdGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
IG5vdGUgaW4gYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9j
dW1lbnRSZWdpb24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24g
aW4gYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtB
cHBsaWNhdGlvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBsaWNhdGlvbiIs
ICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFwcGxpY2F0aW9u
LiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0Jhbm5lciIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiYW5uZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5
IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGJhbm5lci4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09
ICJBUklBTGFuZG1hcmtDb21wbGVtZW50YXJ5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImNvbXBsZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0
cyBhcyBhIHJlZ2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOyAgICAKLSAgICBp
ZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImNvbnRlbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgY29udGFpbnMgY29udGVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFu
ZG1hcmtNYWluIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1haW4iLCAiQW4gQVJJ
QSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9ydGlvbiBvZiB0aGUgd2Vi
c2l0ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9u
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBh
Y2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVt
ZW50cyBvZiBhIHdlYnNpdGUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRt
YXJrU2VhcmNoIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlYXJjaCIsICJBbiBB
UklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBhIHNlYXJjaCBmZWF0dXJlIG9m
IGEgd2Vic2l0ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVyZmFj
ZVRvb2x0aXAiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJBbiBB
UklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsgICAgCi0g
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQotICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNv
bnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJ
QURvY3VtZW50TWF0aCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1i
b2xzLiIpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLSNlbmRpZgotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdp
bGwgb2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxp
dHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhSYWRpb0J1
dHRvbkFjdGlvblZlcmIoKSAKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0Iiwg
IlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0
dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhlIGFj
dGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFzIHVz
ZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5OjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBv
Y2N1ciB3aGVuIGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vz
c2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhV
bmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJjaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBh
biB1bmNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTWVudUxpc3RB
Y3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAic2VsZWN0
IjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhNZW51TGlzdFBv
cHVwQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInNl
bGVjdCI7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlua0Fj
dGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBh
cyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJNaXNzaW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVn
aW4gaXMgbWlzc2luZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
OjpjcmFzaGVkUGx1Z2luVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsdWct
aW4gRmFpbHVyZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3QgcHJvY2Vz
cyBoYXMgY3Jhc2hlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
OjptdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCi17Ci0gICAg
cmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJM
YWJlbCB0byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1
cGxvYWQgY29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVz
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dW5rbm93bkZpbGVT
aXplVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93
biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi0jaWYgUExBVEZP
Uk0oV0lOKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp1cGxvYWRGaWxl
VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInVwbG9hZCI7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmFsbEZpbGVzVGV4dCgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gImFsbCBmaWxlcyI7Ci19Ci0KLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5OjpidWlsdEluUERGUGx1Z2luTmFtZSgpCi17Ci0gICAgLy8gQWxzbyBleHBvc2VkIHRv
IERPTS4KLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0IGJ1aWx0LWluIFBERiIsICJQ
c2V1ZG8gcGx1Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGlu
IFNhZmFyaS4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6cGRm
RG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKQotewotICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00u
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBvcnRhYmxlIERvY3VtZW50IEZvcm1hdCIsICJE
ZXNjcmlwdGlvbiBvZiB0aGUgKG9ubHkpIHR5cGUgc3VwcG9ydGVkIGJ5IFBERiBwc2V1ZG8gcGx1
Zy1pbi4gVmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtNTEy
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUg
aXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtMTAyNCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIjEwMjQgKE1lZGl1bSBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZv
ciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiMjA0OCAoSGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVw
IG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6a2V5Z2Vu
S2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBob3N0Q0ZTdHJpbmcoQWRvcHRDRiwgaG9zdC5jcmVhdGVDRlN0cmluZygpKTsK
LSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIktleSBmcm9t
ICVAIiwgIk5hbWUgb2Yga2V5Y2hhaW4ga2V5IGdlbmVyYXRlZCBieSB0aGUgS0VZR0VOIHRhZyIp
LCBob3N0Q0ZTdHJpbmcuZ2V0KCkpOwotfQotCi0jaWYgUExBVEZPUk0oSU9TKQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90
IGNvdW50KQotewotICAgIHN3aXRjaCAoY291bnQpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVj
dCBtdWx0aXBsZT4gd2hlbiBubyA8b3B0aW9uPiBpdGVtcyBhcmUgc2VsZWN0ZWQgKGlPUyBvbmx5
KSIpOwotICAgIGNhc2UgMToKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEgSXRlbSIs
ICJQcmVzZW50IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gYSBzaW5nbGUgPG9w
dGlvbj4gaXMgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJl
dHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJXp1IEl0ZW1zIiwgIlBy
ZXNlbnQgdGhlIG51bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9uPiBpdGVtcyBpbiBhIDxzZWxlY3Qg
bXVsdGlwbGU+IGVsZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3VudCk7Ci0gICAgfQotfQotI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFt
ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSNpZiBVU0UoQ0YpCi0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZT
dHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgUmV0YWluUHRy
PENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsKLSAg
ICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBDRk51
bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRlckRl
Y2ltYWxTdHlsZSkpOwotCi0gICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOwotICAgIFJl
dGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NG
TnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB3
aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1i
ZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOwotCi0gICAgaW50IGhlaWdodElu
dCA9IHNpemUuaGVpZ2h0KCk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQoQWRv
cHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkpOwot
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVy
Rm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhlaWdo
dC5nZXQoKSkpOwotCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGlt
YWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJp
bmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOwotI2Vsc2UK
LSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmls
ZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmlu
ZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBz
dGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZp
bGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0jZW5k
aWYKLSNlbHNlCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5H
KCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxv
bmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53aWR0
aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwotI2Vu
ZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om1lZGlhRWxlbWVu
dExvYWRpbmdTdGF0ZVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5n
Li4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMg
bG9hZGluZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptZWRp
YUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3
aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25z
dCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIi
KTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1l
ID09ICJNdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
dW5tdXRlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9m
ZiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgcGxheSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciBwYXVzZSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAi
U2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xp
ZGVyIHRodW1iIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUg
dGh1bWIiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOwotICAgIGlmIChuYW1l
ID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInJldHVybiB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHJldHVybiB0byByZWFsIHRpbWUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJl
bnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRp
bWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlz
cGxheSIpOwotICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJv
bGUgZGVzY3JpcHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKLSAgICBpZiAobmFt
ZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0
dXMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsK
LSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgZW50ZXIgZnVsbHNjcmVlbiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0Zvcndh
cmRCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIp
OwotICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBmYXN0IHJldmVyc2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRD
YXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3Nl
ZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xv
c2VkIGNhcHRpb25zIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2Fw
dGlvbnMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBj
YXB0aW9ucyBidXR0b24iKTsKLQotICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250
YWluZXIgc2hvdWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFy
Y2h5LgotICAgIGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKLSAgICAgICAgcmV0dXJuIFN0
cmluZygpOwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChu
YW1lID09ICJBdWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXVk
aW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsK
LSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInZpZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250
cm9sbGVyIik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIG11dGUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCi0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciB1biBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJQbGF5QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJlZ2luIHBsYXli
YWNrIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJw
YXVzZSBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGF1c2UgYnV0dG9u
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJtb3ZpZSB0aW1lIHNjcnViYmVyIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0
aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7Ci0gICAgaWYg
KG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJz
ZWVrIG1vdmllIGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
anVtcCBiYWNrIDMwIHNlY29uZHMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRv
UmVhbHRpbWVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHN0
cmVhbWluZyBtb3ZpZSB0byByZWFsIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IHJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOwotICAgIGlmIChu
YW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiY3VycmVudCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIGVsYXBzZWQgdGltZSBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1h
aW5pbmdEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm51bWJlciBvZiBz
ZWNvbmRzIG9mIG1vdmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
cmVtYWluaW5nIHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgc3RhdHVzIiwg
ImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlzcGxheSIpOwotICAg
IGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJzZWVrIHF1aWNrbHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFz
dCByZXdpbmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBmb3J3YXJkIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7Ci0gICAgaWYg
KG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiUGxheSBtb3ZpZSBpbiBmdWxsc2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIGVudGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dD
bG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGFy
dCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkhpZGVD
bG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdG9w
IGRpc3BsYXlpbmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsK
LSAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
aW5kZWZpbml0ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmlu
aXRlIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOwotCi0gICAgaW50IHNlY29uZHMgPSBz
dGF0aWNfY2FzdDxpbnQ+KGZhYnNmKHRpbWUpKTsgCi0gICAgaW50IGRheXMgPSBzZWNvbmRzIC8g
KDYwICogNjAgKiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKLSAg
ICBpbnQgbWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAlPSA2MDsK
LQotICAgIGlmIChkYXlzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdF
Ql9VSV9TVFJJTkcoIiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29u
ZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2
YWx1ZSA+PSAxIGRheSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7Ci0gICAgaWYg
KGhvdXJzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJ
TkcoIiUxJGQgaG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMi
KSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIGlmIChtaW51dGVzKQotICAgICAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgbWludXRlcyAl
MiRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xs
ZXIgdGltZSB2YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIHJl
dHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBzZWNvbmRzIiwg
ImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUg
PCA2MCBzZWNvbmRzIiksIHNlY29uZHMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBm
b3IgcmVxdWlyZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0eXBlIG1p
c21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRo
IGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9u
IG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQg
dmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9y
bSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93
ZWQgbGVuZ3RoIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygicmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQg
Zm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBv
dmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0
aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVj
dGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhMjJlOWRmNTE2OTk2YTgzNzdhZWQ0YzY4OTQzMTVkZDliYWYx
ZWFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyAvZGV2
L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0jZGVmaW5lIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneV9oCi0KLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2luY2x1ZGUgIkxvY2Fs
aXphdGlvblN0cmF0ZWd5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5IDog
cHVibGljIExvY2FsaXphdGlvblN0cmF0ZWd5IHsKLXB1YmxpYzoKLSAgICBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3koKTsKLQotICAgIHN0YXRpYyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kmIHNoYXJlZCgpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmls
ZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9u
Tm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0Zp
bGVzU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3Vt
bWFyeVRleHQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUlt
YWdlVW5rbm93bkZpbGVMYWJlbCgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRv
dygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzaygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9D
bGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1h
Z2VJbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rv
d25sb2FkSW1hZ2VUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotI2lmIFBMQVRGT1JNKFFUKQotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Ci0jZW5k
aWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q3V0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKLSNp
ZiBQTEFURk9STShHVEspCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVs
ZXRlKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2Rz
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpOwotI2Vu
ZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJp
bmcpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hv
dyk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3Jh
bW1hcldpdGhTcGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0ZvbnRNZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQm9sZCgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhib29sIHNob3cpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcygpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsK
LSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVt
ZW50KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5O
ZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVk
aW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgQVhXZWJBcmVhVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTGlu
a1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEhlYWRp
bmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCk7Ci0j
aWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBB
WEJ1dHRvbkFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0
aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOwotICAgIHZp
cnR1YWwgU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1l
bnVMaXN0UG9wdXBBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5rQWN0aW9u
VmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwotICAgIHZpcnR1YWwg
U3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmly
dHVhbCBTdHJpbmcgdXBsb2FkRmlsZVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBhbGxGaWxl
c1RleHQoKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBi
dWlsdEluUERGUGx1Z2luTmFtZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHBkZkRvY3VtZW50VHlw
ZURlc2NyaXB0aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTEwMjQoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5LZXlj
aGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAg
IHZpcnR1YWwgU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCk7Ci0jZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0
cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3Qg
U3RyaW5nJik7Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dEhlbHBUZXh0KGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1l
ZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2VuZGlmIC8vIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemF0aW9uU3RyYXRlZ3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZhYjc2
NGI4NmFlZWNmZGU4MDAzOGY1ZDJmMzI5MTdmNTI4ZjlkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
YXRpb25TdHJhdGVneS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMb2NhbGl6YXRp
b25TdHJhdGVneV9oCi0jZGVmaW5lIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLQotI2lmIFVTRShQ
TEFURk9STV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnRTaXplOwotCi1jbGFzcyBMb2NhbGl6YXRpb25TdHJh
dGVneSB7Ci1wdWJsaWM6ICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIGlucHV0RWxlbWVudEFsdFRl
eHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSA9IDA7Ci0KLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVM
YWJlbCgpID0gMDsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2so
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0Ns
aXBib2FyZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVu
SW1hZ2VJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkgPSAwOwotI2lmIFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpID0gMDsKLSNlbmRpZgot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnUGFzdGUoKSA9IDA7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlbGV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpID0gMDsKLSNlbmRpZgotI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSA9IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3Qg
U3RyaW5nJiBzZWxlY3RlZFN0cmluZykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5MaW5rKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3BlbGxpbmdNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250
TWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVu
dSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGly
ZWN0aW9uKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRU
b1JpZ2h0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0
VG9MZWZ0KCkgPSAwOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJv
b2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0
Q29weVBhc3RlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0UXVvdGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0RGFzaGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0TGlua3MoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4
dFJlcGxhY2VtZW50KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RyYW5zZm9ybWF0aW9uc01lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NhcGl0YWxpemUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKSA9IDA7
Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9J
bk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuQXVkaW9Jbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
TXV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0
RWxlbWVudCgpID0gMDsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLQotICAgIHZp
cnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLQot
ICAgIHZpcnR1YWwgU3RyaW5nIEFYV2ViQXJlYVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhMaW5rVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIEFYSGVhZGluZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhE
ZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5p
dGlvbkxpc3REZWZpbml0aW9uVGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2
aXJ0dWFsIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5
cGUpID0gMDsKLSNlbmRpZgotICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIEFYQnV0dG9uQWN0aW9u
VmVyYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIEFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhMaW5rQWN0aW9uVmVyYigpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQ
bHVnaW5UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQg
bnVtYmVyT2ZGaWxlcykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRl
eHQoKSA9IDA7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJpbmcgdXBsb2Fk
RmlsZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWxsRmlsZXNUZXh0KCkgPSAwOwot
I2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgYnVpbHRJblBE
RlBsdWdpbk5hbWUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcGRmRG9jdW1lbnRUeXBlRGVz
Y3JpcHRpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGtleWdlbk1lbnVJdGVtMjA0OCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkgPSAwOwotI2VuZGlm
Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IEludFNpemUmIHNpemUpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxl
bWVudExvYWRpbmdTdGF0ZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVt
ZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3Qg
U3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2Ny
aXB0aW9uKGZsb2F0KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVZhbHVlTWlzc2luZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgPSAwOwotCi1wcm90
ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+TG9jYWxpemF0aW9uU3RyYXRlZ3koKQotICAgIHsKLSAgICB9
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1f
U1RSQVRFR0lFUykKLQotI2VuZGlmIC8vIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMTQwOWJiZjMxYjFh
YjJlM2I3NGVlMzQwNTdiNjRlN2U4MGJjZGUwYy4uYTUxNDNhY2NiMTY5MTEzZTMwZjQ1NWY3ZDlm
YWRmMmExZDU4NTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNiwgMjAwOSwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtMjcsNzExICsyNyw5MjkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgorI2lmIFVTRShDRikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYK
KyNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgorCisjaWYgUExBVEZPUk0o
TUFDKQorI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKKy8vIFdlIGNh
bid0IHVzZSBTdHJpbmc6OmZvcm1hdCBmb3IgdHdvIHJlYXNvbnM6CisvLyAgMSkgSXQgZG9lc24n
dCBoYW5kbGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gdGhlIGZvcm1hdCBzdHJpbmcuCisvLyAg
MikgSXQgZG9lc24ndCBoYW5kbGUgdGhlICUyJGQgc3ludGF4LgorLy8gTm90ZSB0aGF0IGJlY2F1
c2UgfGZvcm1hdHwgaXMgdXNlZCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlciB0byB2YV9zdGFydCwg
aXQgY2Fubm90IGJlIGEgcmVmZXJlbmNlCisvLyB0eXBlIGFjY29yZGluZyB0byBzZWN0aW9uIDE4
LjcvMyBvZiB0aGUgQysrIE4xOTA1IHN0YW5kYXJkLgorc3RhdGljIFN0cmluZyBmb3JtYXRMb2Nh
bGl6ZWRTdHJpbmcoU3RyaW5nIGZvcm1hdCwgLi4uKQoreworI2lmIFVTRShDRikKKyAgICB2YV9s
aXN0IGFyZ3VtZW50czsKKyAgICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7CisgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBmb3JtYXRDRlN0cmluZyhBZG9wdENGLCBmb3JtYXQuY3JlYXRl
Q0ZTdHJpbmcoKSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQoQWRvcHRDRiwg
Q0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdENGU3RyaW5n
LmdldCgpLCBhcmd1bWVudHMpKTsKKyAgICB2YV9lbmQoYXJndW1lbnRzKTsKKyAgICByZXR1cm4g
cmVzdWx0LmdldCgpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
b3JtYXQ7CisjZW5kaWYKK30KIAotc3RhdGljIGlubGluZSBMb2NhbGl6YXRpb25TdHJhdGVneSog
bG9jYWxpemF0aW9uU3RyYXRlZ3koKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKK3N0YXRpYyBTdHJpbmcgdHJ1
bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKIHsK
LSAgICBpZiAoaGFzUGxhdGZvcm1TdHJhdGVnaWVzKCkpCi0gICAgICAgIHJldHVybiBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKKyAgICBpZiAob3JpZ2luYWwu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3JpZ2luYWw7CiAKLSAgICByZXR1cm4gJkRlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6c2hhcmVkKCk7CisgICAgLy8gVHJ1bmNhdGUgdGhlIHN0
cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdpdGggQXBwS2l0
LgorICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0
ZW0gPSAyNDsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBzaXMsICgmaG9y
aXpvbnRhbEVsbGlwc2lzLCAxKSk7CisKKyAgICBTdHJpbmcgdHJpbW1lZCA9IG9yaWdpbmFsLnN0
cmlwV2hpdGVTcGFjZSgpOworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVycyA9IG51bUNo
YXJhY3RlcnNJbkdyYXBoZW1lQ2x1c3RlcnModHJpbW1lZCwgbWF4TnVtYmVyT2ZHcmFwaGVtZUNs
dXN0ZXJzSW5Mb29rdXBNZW51SXRlbSk7CisgICAgcmV0dXJuIG51bWJlck9mQ2hhcmFjdGVycyA9
PSB0cmltbWVkLmxlbmd0aCgpID8gdHJpbW1lZCA6IHRyaW1tZWQubGVmdChudW1iZXJPZkNoYXJh
Y3RlcnMpICsgZWxsaXBzaXM7CiB9CisjZW5kaWYKIAogU3RyaW5nIGlucHV0RWxlbWVudEFsdFRl
eHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5pbnB1dEVsZW1lbnRB
bHRUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3VibWl0
IChpbnB1dCBlbGVtZW50KSIsICJhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5v
IGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7CiB9CiAKIFN0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRM
YWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnJlc2V0QnV0dG9u
RGVmYXVsdExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1
bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAK
IFN0cmluZyBzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNl
YXJjaCBrZXl3b3JkczogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dCB0aGF0IGFw
cGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZv
cm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKIH0KIAogU3RyaW5nIHN1Ym1pdEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnN1Ym1p
dEJ1dHRvbkRlZmF1bHRMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJtaXQi
LCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2Vz
Iik7CiB9CiAKIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5n
bGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKIH0KIAogU3RyaW5n
IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5maWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBt
dWx0aXBsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRs
ZSBzaG91bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7CiB9CiAKIFN0cmluZyBmaWxlQnV0
dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIm5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0
dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKIH0KIAog
U3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRp
c3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJl
IHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxl
Y3RlZCIpOwogfQogCiBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkg
aW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKIH0KIAog
I2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb3B5SW1hZ2VVbmtub3duRmlsZUxhYmVsKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29weUltYWdlVW5rbm93bkZpbGVM
YWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwgIlVua25vd24gZmls
ZW5hbWUiKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5k
b3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ci
LCAiT3BlbiBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2so
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93
bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUlu
TmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRv
dyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93
bmxvYWRJbWFnZVRvRGlzaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiRG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
Q29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKLSNpZiBQ
TEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCi1TdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0Ns
aXBib2FyZCgpOwotfQotI2VuZGlmCi0KIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJh
bWVJbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBX
aW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHkoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdDb3B5KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBj
b250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNr
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnR29CYWNrKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkJhY2siLCAiQmFjayBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJk
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnR29Gb3J3YXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZvcndhcmQiLCAiRm9y
d2FyZCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3RvcCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ1N0b3AoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RvcCIsICJTdG9wIGNv
bnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdSZWxvYWQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmVsb2FkIiwgIlJlbG9hZCBj
b250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
Q3V0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkN1dCIsICJDdXQgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKFFUKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nl
bGVjdEFsbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ1NlbGVjdEFsbCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
ICJTZWxlY3QgQWxsIjsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9H
dWVzc2VzRm91bmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJObyBHdWVzc2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3Jl
U3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwg
Iklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiTGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdo
dCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hXZWIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKTsKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9w
dENGLCB3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKKyAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwg
IlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3Zp
ZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKKyNlbHNlCisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0
aCBHb29nbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKKyNlbmRpZgogfQogCiBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJp
bmcpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEluRGljdGlvbmFyeShzZWxlY3RlZFN0cmluZyk7CisjaWYgZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAg
ICBVTlVTRURfUEFSQU0oc2VsZWN0ZWRTdHJpbmcpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJMb29rIFVwIGluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQg
bWVudSBpdGVtIik7CisjZWxzZQorI2lmIFVTRShDRikKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IHNlbGVjdGVkQ0ZTdHJpbmcoQWRvcHRDRiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVu
dUl0ZW0oc2VsZWN0ZWRTdHJpbmcpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiTG9vayBVcCDigJwlQOKAnSIsICJMb29r
IFVwIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLCBzZWxlY3RlZENGU3Ry
aW5nLmdldCgpKTsKKyNlbHNlCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCc
PHNlbGVjdGlvbj7igJ0iLCAiTG9vayBVcCBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVk
IHdvcmQiKS5yZXBsYWNlKCI8c2VsZWN0aW9uPiIsIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1l
bnVJdGVtKHNlbGVjdGVkU3RyaW5nKSk7CisjZW5kaWYKKyNlbmRpZgogfQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgR3JhbW1hciIsICJJZ25vcmUgR3Jh
bW1hciBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29u
dGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3Vi
LW1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5n
UGFuZWwoYm9vbCBzaG93KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChzaG93KTsKKyAgICBpZiAoc2hvdykK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIi
LCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Bl
bGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3Bl
bGxpbmdXaGlsZVR5cGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3Bl
bGxpbmcgd2hpbGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRo
U3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgR3JhbW1hciBXaXRo
IFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJGb250IiwgIkZvbnQgY29udGV4dCBzdWItbWVu
dSBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU2hvd0ZvbnRzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29u
dGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNo
b3cgRm9udHMiLCAiU2hvdyBmb250cyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogI2VuZGlmCiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJJdGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIp
OwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVudSBp
dGVtIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnU3R5bGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0eWxlcy4uLiIs
ICJTdHlsZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1Nob3dDb2xvcnMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlNob3cgQ29sb3JzIiwgIlNob3cgY29sb3JzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJTcGVlY2giLCAiU3BlZWNoIGNvbnRleHQgc3ViLW1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZygpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0
U3BlYWtpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3RhcnQgU3BlYWtpbmciLCAi
U3RhcnQgc3BlYWtpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1N0b3BTcGVha2luZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVj
dGlvbk1lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJQYXJhZ3JhcGggRGlyZWN0aW9uIiwgIlBhcmFncmFwaCBkaXJlY3Rpb24gY29udGV4dCBz
dWItbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0
aW9uTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1t
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rp
b24oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1
bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMZWZ0IHRvIFJpZ2h0IiwgIkxlZnQgdG8gUmlnaHQg
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0
VG9MZWZ0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmlnaHQg
dG8gTGVmdCIsICJSaWdodCB0byBMZWZ0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNpZiBQ
TEFURk9STShNQUMpCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdB
dXRvbWF0aWNhbGx5KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29u
dGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJDb3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkiLCAiQ29ycmVj
dCBTcGVsbGluZyBBdXRvbWF0aWNhbGx5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1YnN0aXR1dGlvbnMiLCAiU3Vic3RpdHV0
aW9ucyBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJvb2wgc2hvdykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoc2hvdyk7
CisgICAgaWYgKHNob3cpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFN1YnN0
aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKIH0KIAogU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgQ29weS9QYXN0ZSIsICJTbWFydCBDb3B5L1Bhc3Rl
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFy
dFF1b3RlcygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ1NtYXJ0UXVvdGVzKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0
IFF1b3RlcyIsICJTbWFydCBRdW90ZXMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcygpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0TGlua3MoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAiU21h
cnQgTGlua3MgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1RleHRSZXBsYWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPmNvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudCgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJUZXh0IFJlcGxhY2VtZW50IiwgIlRleHQgUmVwbGFjZW1lbnQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9u
c01lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlRyYW5zZm9ybWF0aW9ucyIsICJUcmFuc2Zvcm1hdGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFrZVVw
cGVyQ2FzZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNYWtlIFVwcGVyIENhc2UiLCAi
TWFrZSBVcHBlciBDYXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZSgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJNYWtlIExvd2VyIENhc2UiLCAiTWFrZSBMb3dlciBDYXNlIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
Q2FwaXRhbGl6ZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDYXBpdGFsaXplIiwgIkNh
cGl0YWxpemUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhy
ZXBsYWNlZFN0cmluZyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVwbGFj
ZWRTdHJpbmc7CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJP
cGVuIFZpZGVvIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdX
aW5kb3coKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2lu
ZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29w
eVZpZGVvTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkg
VmlkZW8gQWRkcmVzcyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0Ns
aXBib2FyZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDb3B5IEF1ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0aW9u
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJDb250cm9scyIsICJNZWRpYSBDb250cm9scyBjb250ZXh0IG1lbnUgaXRlbSIp
OwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9v
cCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50
ZXJWaWRlb0Z1bGxzY3JlZW4oKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJFbnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4g
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGxheSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IiwgIk1l
ZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ01lZGlhUGF1c2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAg
ICAgCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxl
bWVudCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAiSW5z
cGVjdCBFbGVtZW50IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKIAogU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1lbnVOb1JlY2Vu
dFNlYXJjaGVzVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJObyByZWNlbnQgc2Vh
cmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNs
aWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBi
ZWVuIHBlcmZvcm1lZCIpOwogfQogCi1TdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4
dCAoKQorU3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0ICgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwgZm9y
IGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhl
IHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7CiB9CiAK
IFN0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1Rl
eHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVzIiwg
Im1lbnUgaXRlbSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdzIGNv
bnRlbnRzIik7CiB9CiAKIFN0cmluZyBBWFdlYkFyZWFUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+QVhXZWJBcmVhVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJIVE1MIGNvbnRlbnQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZv
ciB3ZWIgYXJlYSIpOwogfQogCiBTdHJpbmcgQVhMaW5rVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTGlua1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibGluayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpbmsiKTsK
IH0KIAogU3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5BWExpc3RNYXJrZXJUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImxpc3QgbWFya2VyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbGlz
dCBtYXJrZXIiKTsKIH0KIAogU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhJbWFnZU1hcFRleHQoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgaW1hZ2UgbWFwIik7CiB9CiAKIFN0cmluZyBBWEhlYWRpbmdUZXh0KCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhIZWFkaW5nVGV4dCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgaGVhZGluZ3MiKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3RUZXJt
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0ZXJtIiwgInRlcm0gd29yZCBvZiBh
IGRlZmluaXRpb24iKTsKIH0KIAogU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4
dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxp
c3REZWZpbml0aW9uVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkZWZpbml0aW9u
IiwgImRlZmluaXRpb24gcGhyYXNlIik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcg
QVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWEFSSUFDb250ZW50R3JvdXBUZXh0KGFyaWFU
eXBlKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0IikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBn
cm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklB
QXBwbGljYXRpb25BbGVydERpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJh
bGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
biBhbGVydCBkaWFsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25E
aWFsb2ciKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGlhbG9nIiwgIkFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9nLiIpOworICAgIGlmIChh
cmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEg
Y29uc29sZSBsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25NYXJx
dWVlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAiQW4gQVJJQSBh
Y2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUuIik7CisgICAgaWYgKGFy
aWFUeXBlID09ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiYXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91
cCB0aGF0IGFjdHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAi
QVJJQUFwcGxpY2F0aW9uVGltZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGlt
ZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiB1cGRhdGlu
ZyB0aW1lci4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkg
Z3JvdXAgdGhhdCBhY3RzIGFzIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJB
UklBRG9jdW1lbnRBcnRpY2xlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFydGlj
bGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhcnRpY2xl
LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50Tm90ZSIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJub3RlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGFjdHMgYXMgYSBub3RlIGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBRG9jdW1lbnRSZWdpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVn
aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5j
dCByZWdpb24gaW4gYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5k
bWFya0FwcGxpY2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0
aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXBwbGlj
YXRpb24uIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtCYW5uZXIiKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYmFubmVyIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYSBiYW5uZXIuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJB
UklBTGFuZG1hcmtDb21wbGVtZW50YXJ5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImNvbXBsZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBh
cyBhIHJlZ2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOworICAgIGlmIChhcmlh
VHlwZSA9PSAiQVJJQUxhbmRtYXJrQ29udGVudEluZm8iKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiY29udGVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250
YWlucyBjb250ZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrTWFpbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYWluIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGlzIHRoZSBtYWluIHBvcnRpb24gb2YgdGhlIHdlYnNpdGUuIik7Cisg
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKKyAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdy
b3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBvZiBhIHdlYnNp
dGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBn
cm91cCB0aGF0IGNvbnRhaW5zIGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIikKKyAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInRvb2x0aXAiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3Vw
IHRoYXQgYWN0cyBhcyBhIHRvb2x0aXAuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFi
UGFuZWwiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFS
SUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFi
LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOworICAgIHJldHVybiBTdHJpbmco
KTsKIH0KICNlbmRpZgogICAgIAogU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQnV0dG9uQWN0aW9uVmVyYigpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0
aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vz
c2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0aGUg
YWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQsIGFz
IHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25W
ZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhUZXh0RmllbGRB
Y3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRlIiwgIlZlcmIg
c3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVsZCBpcyBz
ZWxlY3RlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWENoZWNr
ZWRDaGVja0JveEFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5BWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygidW5jaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIg
d2hlbiBhIGNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmls
aXR5Iik7CiB9CiAKIFN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rp
b25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3RhdGlu
ZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBp
cyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYTGlu
a0FjdGlvblZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWExp
bmtBY3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAiLCAiVmVyYiBz
dGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQs
IGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhNZW51TGlzdFBvcHVw
QWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTWVu
dUxpc3RQb3B1cEFjdGlvblZlcmIoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAic2VsZWN0IjsKIH0KIAogU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhNZW51TGlzdEFjdGlvblZlcmIoKTsKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAic2VsZWN0IjsKIH0KIAogU3RyaW5nIG1p
c3NpbmdQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
bWlzc2luZ1BsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWlzc2luZyBQ
bHVnLWluIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3Npbmci
KTsKIH0KIAogU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y3Jhc2hlZFBsdWdpblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiUGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCBpZiBwbHVn
aW4gaG9zdCBwcm9jZXNzIGhhcyBjcmFzaGVkIik7CiB9CiAKIFN0cmluZyBtdWx0aXBsZUZpbGVV
cGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPm11bHRpcGxlRmlsZVVwbG9hZFRleHQobnVtYmVyT2ZGaWxlcyk7Cisg
ICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIs
ICJMYWJlbCB0byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmls
ZSB1cGxvYWQgY29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZp
bGVzKTsKIH0KIAogU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT51bmtub3duRmlsZVNpemVUZXh0KCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5
IGxpc3RpbmcgaXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oV0lOKQogU3RyaW5nIHVwbG9hZEZp
bGVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dXBsb2FkRmls
ZVRleHQoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAidXBsb2FkIjsKIH0K
IAogU3RyaW5nIGFsbEZpbGVzVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmFsbEZpbGVzVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
ICJhbGwgZmlsZXMiOwogfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgYnVp
bHRJblBERlBsdWdpbk5hbWUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5idWlsdEluUERGUGx1Z2luTmFtZSgpOworICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIldlYktpdCBidWlsdC1pbiBQREYiLCAiUHNldWRvIHBs
dWctaW4gbmFtZSwgdmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmku
Iik7CiB9CiAKIFN0cmluZyBwZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uKCk7
CisgICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4KKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
UG9ydGFibGUgRG9jdW1lbnQgRm9ybWF0IiwgIkRlc2NyaXB0aW9uIG9mIHRoZSAob25seSkgdHlw
ZSBzdXBwb3J0ZWQgYnkgUERGIHBzZXVkbyBwbHVnLWluLiBWaXNpYmxlIGluIEluc3RhbGxlZCBQ
bHVnLWlucyBwYWdlIGluIFNhZmFyaS4iKTsKIH0KIAogU3RyaW5nIGtleWdlbk1lbnVJdGVtNTEy
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0ZW01
MTIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUg
aXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5N
ZW51SXRlbTEwMjQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXln
ZW5NZW51SXRlbTEwMjQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMTAyNCAoTWVkaXVt
IEdyYWRlKSIsICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwogfQog
CiBTdHJpbmcga2V5Z2VuTWVudUl0ZW0yMDQ4KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0ZW0yMDQ4KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIjIwNDggKEhpZ2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11
cCBtZW51Iik7CiB9CiAKIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmlu
ZyYgaG9zdCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuS2V5
Y2hhaW5JdGVtTmFtZShob3N0KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRlN0
cmluZyhBZG9wdENGLCBob3N0LmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBrZXlj
aGFpbiBrZXkgZ2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIGhvc3RDRlN0cmluZy5nZXQo
KSk7CiB9CiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorU3RyaW5nIGh0bWxTZWxlY3RN
dWx0aXBsZUl0ZW1zKHNpemVfdCBjb3VudCkKK3sKKyAgICBzd2l0Y2ggKGNvdW50KSB7CisgICAg
Y2FzZSAwOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMCBJdGVtcyIsICJQcmVzZW50
IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gbm8gPG9wdGlvbj4gaXRlbXMgYXJl
IHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAgICBjYXNlIDE6CisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCIxIEl0ZW0iLCAiUHJlc2VudCB0aGUgZWxlbWVudCA8c2VsZWN0IG11bHRpcGxl
PiB3aGVuIGEgc2luZ2xlIDxvcHRpb24+IGlzIHNlbGVjdGVkIChpT1Mgb25seSkiKTsKKyAgICBk
ZWZhdWx0OgorICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJ
TkcoIiV6dSBJdGVtcyIsICJQcmVzZW50IHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgPG9wdGlvbj4g
aXRlbXMgaW4gYSA8c2VsZWN0IG11bHRpcGxlPiBlbGVtZW50IChpT1Mgb25seSkiKSwgY291bnQp
OworICAgIH0KK30KKyNlbmRpZgorCiBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZp
bGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5pbWFnZVRpdGxlKGZpbGVuYW1lLCBzaXplKTsKKyNpZiBVU0UoQ0YpCisjaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Cisg
ICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3Vy
cmVudCgpKTsKKyAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihB
ZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJl
ckZvcm1hdHRlckRlY2ltYWxTdHlsZSkpOworCisgICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0
aCgpOworICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJD
cmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7CisgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiB3aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0
cmluZ1dpdGhOdW1iZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOworCisgICAg
aW50IGhlaWdodEludCA9IHNpemUuaGVpZ2h0KCk7CisgICAgUmV0YWluUHRyPENGTnVtYmVyUmVm
PiBoZWlnaHQoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhl
aWdodEludCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0
Q0YsIENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIu
Z2V0KCksIGhlaWdodC5nZXQoKSkpOworCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmlu
ZyhXRUJfVUlfU1RSSU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBz
dGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZp
bGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0
KCkpOworI2Vsc2UKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmco
QWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJuIGZvcm1hdExv
Y2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0
aXRsZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwg
bm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWln
aHQoKSk7CisjZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhX
RUJfVUlfU1RSSU5HKCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZv
ciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCki
KSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmls
ZW5hbWUpOworI2VuZGlmCiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWVkaWFFbGVtZW50TG9h
ZGluZ1N0YXRlVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwg
Ik1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGlu
ZyIpOwogfQogCiBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1lZGlhRWxlbWVudExpdmVCcm9h
ZGNhc3RTdGF0ZVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGl2ZSBCcm9hZGNh
c3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2
ZSBicm9hZGNhc3QiKTsKIH0KIAotU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcoY29uc3QgU3RyaW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhj
b250cm9sTmFtZSk7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAg
ICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJN
dXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1l
ID09ICJVbk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRl
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0
b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxh
eSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBwYXVzZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRl
c2NyaXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVy
VGh1bWIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRo
dW1iIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIi
KTsKKyAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJl
dHVybiB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJl
dHVybiB0byByZWFsIHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1l
RGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIp
OworICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAi
U3RhdHVzRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKKyAgICBp
ZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50
ZXIgZnVsbHNjcmVlbiBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0
b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOworICAg
IGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBm
YXN0IHJldmVyc2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9u
c0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0
aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNh
cHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9u
cyBidXR0b24iKTsKKworICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIg
c2hvdWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5Lgor
ICAgIGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygp
OworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQog
Ci1TdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmlu
ZyYgY29udHJvbE5hbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBU
ZXh0KGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnRyb2xOYW1lKTsK
KyAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImF1ZGlvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250
cm9sbGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0
dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVs
ZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciBtdXRlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJVbk11dGVC
dXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRlIGF1ZGlvIHRyYWNr
cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJi
ZWdpbiBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxheSBidXR0b24i
KTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygicGF1c2UgcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHBh
dXNlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5IGhlbHAg
dGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1i
IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIgdGh1
bWIiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0aHVtYiIp
OworICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygic2VlayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxw
IHRleHQgZm9yIGp1bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09
ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
InJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVs
cCB0ZXh0IGZvciByZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBidXR0b24iKTsK
KyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09
ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJu
dW1iZXIgb2Ygc2Vjb25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJpbGl0eSBoZWxw
IHRleHQgZm9yIHJlbWFpbmluZyB0aW1lIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU3Rh
dHVzRGlzcGxheSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50IG1vdmll
IHN0YXR1cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3RhdHVzIGRpc3Bs
YXkiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygic2VlayBxdWlja2x5IGJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIGZhc3QgcmV3aW5kIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2Fy
ZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgZm9y
d2FyZCIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIp
OworICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlmIChuYW1l
ID09ICJTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygic3RhcnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworICAgIGlmIChuYW1l
ID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygic3RvcCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBsb2NhbGl6
ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5sb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbih0aW1lKTsKKyAg
ICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5k
ZWZpbml0ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRl
IG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOworCisgICAgaW50IHNlY29uZHMgPSBzdGF0
aWNfY2FzdDxpbnQ+KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgZGF5cyA9IHNlY29uZHMgLyAoNjAg
KiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGlu
dCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisg
ICAgaWYgKGRheXMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJ
X1NUUklORygiJTEkZCBkYXlzICUyJGQgaG91cnMgJTMkZCBtaW51dGVzICU0JGQgc2Vjb25kcyIs
ICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVl
ID49IDEgZGF5IiksIGRheXMsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAoaG91
cnMpCisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygi
JTEkZCBob3VycyAlMiRkIG1pbnV0ZXMgJTMkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVs
cCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgbWludXRlcyIpLCBo
b3VycywgbWludXRlcywgc2Vjb25kcyk7CisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJldHVy
biBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBtaW51dGVzICUyJGQg
c2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0
aW1lIHZhbHVlID49IDYwIHNlY29uZHMiKSwgbWludXRlcywgc2Vjb25kcyk7CisgICAgcmV0dXJu
IGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIHNlY29uZHMiLCAiYWNj
ZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA8IDYw
IHNlY29uZHMiKSwgc2Vjb25kcyk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygidmFsdWUgbWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0g
Y29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKIH0KIAogU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0
KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQog
CiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JGaWxlVGV4dCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVN
aXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1Rl
eHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlw
bGVGaWxlVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlk
YXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nRm9yUmFkaW9UZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JTZWxlY3RUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Cisg
ICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBt
ZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcg
dHlwZSIpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFp
bFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaEZvck11bHRpcGxlRW1haWxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cisg
ICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hU
ZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAiVmFs
aWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0
cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBj
b250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQg
bGVuZ3RoIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dChjb25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52
YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBm
b3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKTsKIH0K
IAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5n
JikKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBv
dmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0
aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKIH0KIAogU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2Fn
ZVN0ZXBNaXNtYXRjaFRleHQoKTsKLX0KLQotI2VuZGlmIC8vIFVTRShQTEFURk9STV9TVFJBVEVH
SUVTKQotCi0jaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikKLVN0cmluZyBsb2Nh
bGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KQotewotICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KGtleSwgc3RybGVuKGtleSkpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGVwIG1p
c21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRo
IHZhbHVlIG5vdCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpOwogfQotI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaAppbmRleCBhNzNjOTkxZmVkYTk3ZWU5OWI5YWZlMjg3YzVjNjBiNjMxYTczNTJh
Li4zZWJiZWY3MjJlM2NlYjUyYzA4MDBhYjZhMTQxNzg2YjhhOGIwZGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xNzQsNiArMTc0LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25z
dCBTdHJpbmcmIGhvc3QpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgU3RyaW5n
IGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCBudW0pOworI2VuZGlmCisKICAgICBTdHJp
bmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXpl
KTsKIAogICAgIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7CkBAIC0xOTgs
MTEgKzIwMiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKTsKICAgICBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFzZSwg
Y29uc3QgU3RyaW5nJiBzdGVwKTsKIAotCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogI2RlZmlu
ZSBXRUJfVUlfU1RSSU5HKHN0cmluZywgZGVzY3JpcHRpb24pIFdlYkNvcmU6OmxvY2FsaXplZFN0
cmluZyhzdHJpbmcpCiAjZGVmaW5lIFdFQl9VSV9TVFJJTkdfS0VZKHN0cmluZywga2V5LCBkZXNj
cmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVkU3RyaW5nKGtleSkKIAogICAgIFN0cmluZyBsb2Nh
bGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KTsKKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCmluZGV4IGRjOWZjMzVhNzBlOTNjZTY0MzlmN2JhNzMzZjQ0ZDNkMjc2M2M3NGEuLjY0M2Yz
NzUwNThlY2I4MzBiYjU3ZDUwZTkyY2RkNjU5MDNiMTYyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMjksOCArMjksNiBAQAogCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUGxhdGZv
cm1TdHJhdGVnaWVzKiBzX3BsYXRmb3JtU3RyYXRlZ2llczsKQEAgLTU5LDExICs1Nyw2IEBAIGJv
b2wgaGFzUGxhdGZvcm1TdHJhdGVnaWVzKCkKICAgICByZXR1cm4gc19wbGF0Zm9ybVN0cmF0ZWdp
ZXM7CiB9CiAKLUxvY2FsaXphdGlvblN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0
ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCkKLXsKLSAgICByZXR1cm4gbmV3IERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
VVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU3RyYXRlZ2llcy5oCmluZGV4IDAzMTgyYzYyNTk4ZDJkMjI4YmEwOGY5NDRkNTA1ZjY0MTIx
NzZmNzIuLmM4NWVlNTkwM2Q0NDk4MzkwMWNkNDM4M2JjYmZmYjEyZTQwNTQ2N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zMyw3ICszMyw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvb2tpZXNTdHJhdGVneTsKIGNsYXNzIFBh
c3RlYm9hcmRTdHJhdGVneTsKIGNsYXNzIFBsdWdpblN0cmF0ZWd5OwotY2xhc3MgTG9jYWxpemF0
aW9uU3RyYXRlZ3k7CiBjbGFzcyBWaXNpdGVkTGlua1N0cmF0ZWd5OwogCiBjbGFzcyBQbGF0Zm9y
bVN0cmF0ZWdpZXMgewpAQCAtNTIsMTMgKzUxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
bV9wbHVnaW5TdHJhdGVneTsKICAgICB9CiAKLSAgICBMb2NhbGl6YXRpb25TdHJhdGVneSogbG9j
YWxpemF0aW9uU3RyYXRlZ3koKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2xvY2FsaXphdGlvblN0
cmF0ZWd5KQotICAgICAgICAgICAgbV9sb2NhbGl6YXRpb25TdHJhdGVneSA9IGNyZWF0ZUxvY2Fs
aXphdGlvblN0cmF0ZWd5KCk7Ci0gICAgICAgIHJldHVybiBtX2xvY2FsaXphdGlvblN0cmF0ZWd5
OwotICAgIH0KLQogICAgIFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIHZpc2l0ZWRMaW5rU3RyYXRlZ3ko
KQogICAgIHsKICAgICAgICAgaWYgKCFtX3Zpc2l0ZWRMaW5rU3RyYXRlZ3kpCkBAIC03Niw3ICs2
OCw2IEBAIHByb3RlY3RlZDoKICAgICBQbGF0Zm9ybVN0cmF0ZWdpZXMoKQogICAgICAgICA6IG1f
Y29va2llc1N0cmF0ZWd5KDApCiAgICAgICAgICwgbV9wbHVnaW5TdHJhdGVneSgwKQotICAgICAg
ICAsIG1fbG9jYWxpemF0aW9uU3RyYXRlZ3koMCkKICAgICAgICAgLCBtX3Zpc2l0ZWRMaW5rU3Ry
YXRlZ3koMCkKICAgICAgICAgLCBtX3Bhc3RlYm9hcmRTdHJhdGVneSgwKQogICAgIHsKQEAgLTg5
LDEzICs4MCwxMSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgQ29va2llc1N0
cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3koKSA9IDA7CiAgICAgdmlydHVhbCBQbHVnaW5T
dHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKSA9IDA7Ci0gICAgdmlydHVhbCBMb2NhbGl6
YXRpb25TdHJhdGVneSogY3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKICAgICB2aXJ0dWFs
IFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKSA9IDA7CiAg
ICAgdmlydHVhbCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgp
ID0gMDsgCiAKICAgICBDb29raWVzU3RyYXRlZ3kqIG1fY29va2llc1N0cmF0ZWd5OwogICAgIFBs
dWdpblN0cmF0ZWd5KiBtX3BsdWdpblN0cmF0ZWd5OwotICAgIExvY2FsaXphdGlvblN0cmF0ZWd5
KiBtX2xvY2FsaXphdGlvblN0cmF0ZWd5OwogICAgIFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIG1fdmlz
aXRlZExpbmtTdHJhdGVneTsKICAgICBQYXN0ZWJvYXJkU3RyYXRlZ3kqIG1fcGFzdGVib2FyZFN0
cmF0ZWd5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2Fs
aXplZFN0cmluZ3NRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRT
dHJpbmdzUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OGQ2Yjg0NjhhODAyNjA3ZWFlMjFlZWJlN2U2MmEx
ZGQyZjI1NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9M
b2NhbGl6ZWRTdHJpbmdzUXQuY3BwCkBAIC0wLDAgKzEsNjkyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA3IFN0YWlrb3MgQ29tcHV0aW5nIFNlcnZpY2VzIEluYy4gPGluZm9Ac3RhaWtvcy5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSU5kVCAtIEluc3Rp
dHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJJbnRTaXplLmgiCisj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3Vi
bWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkgYWx0IHRleHQgZm9yIDxpbnB1dD4gZWxlbWVu
dHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIpOworfQorCitTdHJpbmcgcmVzZXRCdXR0
b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlJlc2V0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMg
aW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Cit9CisKK1N0cmluZyBzZWFyY2hhYmxlSW5kZXhJbnRy
b2R1Y3Rpb24oKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29y
ZHM6ICIsICJ0ZXh0IHRoYXQgYXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRl
IHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOworfQorCitT
dHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBm
b3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Cit9CisKK1N0cmluZyBm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5n
bGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKK30KKworU3RyaW5n
IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlcyIsICJ0aXRs
ZSBmb3IgYSBtdWx0aXBsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4g
VGhpcyB0aXRsZSBzaG91bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Cit9CisKK1N0cmlu
ZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0
IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmls
ZSBpcyBzZWxlY3RlZCIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExh
YmVsKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJObyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24g
dXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0
dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOworfQorCitTdHJpbmcg
ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
PGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gaW4gTmV3IFdp
bmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpCit7CisgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBMaW5rLi4uIiwg
IkRvd25sb2FkIExpbmtlZCBGaWxlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IExpbmsiLCAiQ29weSBM
aW5rIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuSW1hZ2VJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBJbWFnZSIsICJPcGVuIEltYWdlIGluIE5ldyBXaW5k
b3cgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rv
d25sb2FkSW1hZ2VUb0Rpc2soKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlNhdmUgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBt
ZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xp
cGJvYXJkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJDb3B5IEltYWdlIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkg
SW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3MgbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBWaWRlbyIs
ICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEF1ZGlvIiwgIk9wZW4gQXVkaW8gaW4gTmV3
IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1Rv
Q2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJDb3B5IFZpZGVvIiwgIkNvcHkgVmlkZW8gTGluayBMb2NhdGlvbiIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5
IEF1ZGlvIiwgIkNvcHkgQXVkaW8gTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIENvbnRyb2xzIiwgIlRvZ2ds
ZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJUb2dnbGUgTG9vcCIsICJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVudGVy
IEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSIsICJQbGF5Iik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSIsICJQYXVzZSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIiwgIk11dGUiKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEZyYW1l
IiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSIsICJDb3B5IGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEJhY2siLCAi
QmFjayBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
R29Gb3J3YXJkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJHbyBGb3J3YXJkIiwgIkZvcndhcmQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN0b3AiLCAiU3RvcCBjb250ZXh0IG1l
bnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWxvYWQi
LCAiUmVsb2FkIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDdXQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkN1dCIsICJDdXQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXN0ZSIsICJQYXN0ZSBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWxlY3QgQWxsIiwg
IlNlbGVjdCBBbGwgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBHdWVzc2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91
bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ln
bm9yZVNwZWxsaW5nKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJJZ25vcmUiLCAiSWdub3JlIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBZGQgVG8g
RGljdGlvbmFyeSIsICJMZWFybiBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWFyY2ggVGhlIFdlYiIsICJTZWFy
Y2ggVGhlIFdlYiBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTG9vayBVcCBJbiBEaWN0aW9u
YXJ5IiwgIkxvb2sgVXAgaW4gRGljdGlvbmFyeSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gTGluayIsICJPcGVuIExpbmsg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9y
ZUdyYW1tYXIoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgR3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTcGVsbGluZyIsICJT
cGVsbGluZyBhbmQgR3JhbW1hciBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKK3sKKyAgICBy
ZXR1cm4gc2hvdyA/IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2hv
dyBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKSA6CisgICAgICAgICAg
ICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkhpZGUgU3Bl
bGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaGVjayBTcGVsbGluZyIsICJDaGVjayBzcGVs
bGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAi
Q2hlY2sgc3BlbGxpbmcgd2hpbGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIEdy
YW1tYXIgV2l0aCBTcGVsbGluZyIsICJDaGVjayBncmFtbWFyIHdpdGggc3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJG
b250cyIsICJGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQm9sZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkl0YWxpYyIsICJJdGFsaWMgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
VW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9u
TWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiRGlyZWN0aW9uIiwgIldyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRl
eHQgRGlyZWN0aW9uIiwgIlRleHQgZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRGVmYXVsdCIs
ICJEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCit7CisgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGVmdCB0byBSaWdodCIsICJMZWZ0
IHRvIFJpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdSaWdodFRvTGVmdCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiUmlnaHQgdG8gTGVmdCIsICJSaWdodCB0byBMZWZ0IGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVu
dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiSW5zcGVjdCIsICJJbnNwZWN0IEVsZW1lbnQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwor
U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gcmVjZW50IHNlYXJjaGVz
IiwgIkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2lu
ZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3aGVuIG5vIHNlYXJjaGVzIGhhdmUgYmVlbiBw
ZXJmb3JtZWQiKTsKK30KKworU3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJl
Y2VudCBzZWFyY2hlcyIsICJsYWJlbCBmb3IgZmlyc3QgaXRlbSBpbiB0aGUgbWVudSB0aGF0IGFw
cGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB1c2VkIGFzIGVt
YmVkZGVkIG1lbnUgdGl0bGUiKTsKK30KKworU3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNl
YXJjaGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiQ2xlYXIgcmVjZW50IHNlYXJjaGVzIiwgIm1lbnUgaXRlbSBpbiBSZWNlbnQg
U2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdzIGNvbnRlbnRzIik7Cit9CisKK1N0cmlu
ZyBBWFdlYkFyZWFUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworU3RyaW5nIEFYTGlua1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhMaXN0TWFya2VyVGV4dCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyBBWEltYWdlTWFwVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWEhlYWRpbmdUZXh0KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYRGVmaW5pdGlv
bkxpc3RUZXJtVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
QVhCdXR0b25BY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFY
VGV4dEZpZWxkQWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhNZW51TGlzdEFjdGlvblZl
cmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpbmtBY3Rpb25WZXJi
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNaXNzaW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0
byBiZSB1c2VkIHdoZW4gYSBwbHVnLWluIGlzIG1pc3NpbmciKTsKK30KKworU3RyaW5nIGNyYXNo
ZWRQbHVnaW5UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB1
bmtub3duRmlsZVNpemVUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJVbmtub3duIiwgIlVua25vd24gZmlsZXNpemUgRlRQIGRpcmVj
dG9yeSBsaXN0aW5nIGl0ZW0iKTsKK30KKworU3RyaW5nIGltYWdlVGl0bGUoY29uc3QgU3RyaW5n
JiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSAoJTJ4JTMgcGl4ZWxzKSIsICJUaXRs
ZSBzdHJpbmcgZm9yIGltYWdlcyIpLmFyZyhmaWxlbmFtZSkuYXJnKHNpemUud2lkdGgoKSkuYXJn
KHNpemUuaGVpZ2h0KCkpOworfQorCitTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4
dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiTG9hZGluZy4uLiIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gdGhl
IG1lZGlhIGlzIGxvYWRpbmciKTsKK30KKworU3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNh
c3RTdGF0ZVRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkxpdmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1l
c3NhZ2Ugd2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7Cit9CisKKyNpZiBFTkFCTEUo
VklERU8pCisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0
IFN0cmluZyYgbmFtZSkKK3sKKyAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQXVkaW8g
RWxlbWVudCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAi
VmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gRWxlbWVudCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUgQnV0dG9uIiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0b24iKQorICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbm11
dGUgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09
ICJQbGF5QnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiUGxheSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGF1c2UgQnV0dG9uIiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTbGlkZXIiLCAi
TWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1i
IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiU2xpZGVyIFRodW1iIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChu
YW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXdpbmQgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKKyAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV0
dXJuIHRvIFJlYWwtdGltZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Cisg
ICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCisgICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVsYXBzZWQgVGltZSIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rp
c3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJSZW1haW5pbmcgVGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAg
ICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxheSIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN0YXR1cyBEaXNwbGF5IiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
RnVsbHNjcmVlbiBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYg
KG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBGb3J3YXJkIEJ1dHRvbiIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24i
KQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJTZWVrIEJhY2sgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworCisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBpZiAobmFtZSA9PSAiQXVkaW9F
bGVtZW50IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiQXVkaW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3Bs
YXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlZpZGVv
RWxlbWVudCIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlZpZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNw
bGF5IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJNdXRl
QnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiTXV0ZSBhdWRpbyB0cmFja3MiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVubXV0ZSBhdWRpbyB0cmFja3MiLCAi
TWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24i
KQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJCZWdpbiBwbGF5YmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAo
bmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSBwbGF5YmFjayIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTW92aWUgdGltZSBzY3J1YmJl
ciIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVy
VGh1bWIiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJNb3ZpZSB0aW1lIHNjcnViYmVyIHRodW1iIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOworICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXdpbmQgbW92aWUiLCAi
TWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVh
bHRpbWVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJSZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwtdGltZSIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNw
bGF5IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiQ3VycmVudCBtb3ZpZSB0aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwor
ICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBtb3ZpZSB0
aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTdGF0
dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiQ3VycmVudCBtb3ZpZSBzdGF0dXMiLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IG1vdmllIGlu
IGZ1bGwtc2NyZWVuIG1vZGUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYg
KG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBxdWlja2x5IGJhY2siLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
U2VlayBxdWlja2x5IGZvcndhcmQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQoreworICAgIGlmICgh
aXNmaW5pdGUodGltZSkpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkluZGVmaW5pdGUgdGltZSIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9u
Iik7CisKKyAgICBpbnQgc2Vjb25kcyA9IChpbnQpZmFic2YodGltZSk7CisgICAgaW50IGRheXMg
PSBzZWNvbmRzIC8gKDYwICogNjAgKiAyNCk7CisgICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2
MCAqIDYwKTsKKyAgICBpbnQgbWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7CisgICAgc2Vj
b25kcyAlPSA2MDsKKworICAgIGlmIChkYXlzKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBkYXlzICUyIGhvdXJzICUzIG1pbnV0ZXMg
JTQgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKGRheXMpLmFyZyhob3Vy
cykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKKworICAgIGlmIChob3VycykKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgaG91cnMg
JTIgbWludXRlcyAlMyBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoaG91
cnMpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7CisKKyAgICBpZiAobWludXRlcykKKyAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgbWlu
dXRlcyAlMiBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcobWludXRlcyku
YXJnKHNlY29uZHMpOworCisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiJTEgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKHNl
Y29uZHMpOworfQorCisjZWxzZSAvLyBFTkFCTEUoVklERU8pCisvLyBGSVhNRTogI2lmIEVOQUJM
RShWSURFTykgc2hvdWxkIGJlIGluIHRoZSBiYXNlIGNsYXNzCisKK1N0cmluZyBsb2NhbGl6ZWRN
ZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVs
cFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCit7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQorCisKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VWYWx1ZU1pc3NpbmdGb3JDaGVja2JveFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1
ZU1pc3NpbmdGb3JGaWxlVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0Zv
ck11bHRpcGxlRmlsZVRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JS
YWRpb1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JTZWxlY3RUZXh0
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaEZvck11bHRpcGxlRW1haWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoRm9yVVJMVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRj
aFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQgdmFsdWVMZW5ndGgs
IGludCBtYXhMZW5ndGgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChj
b25zdCBTdHJpbmcmIG1pbmltdW0pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dU
ZXh0KGNvbnN0IFN0cmluZyYgbWF4aW11bSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21h
dGNoVGV4dChjb25zdCBTdHJpbmcmIGJhc2UsIGNvbnN0IFN0cmluZyYgc3RlcCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2Fs
aXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
Rjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKaW5kZXggMjQ3Njcx
MmQxNTM2YzkwMGMyMjIxZDE4NGJiOWZiN2ZiMDQ1YWM3My4uY2Q0YWIwZDcyZDg2ODEyNWRjODZl
ZTk4N2JjY2U2ZWYzYWIxYWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKQEAgLTY4LDExICs2OCw2IEBA
IFBsdWdpblN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y3JlYXRlUGx1Z2luU3RyYXRl
Z3koKQogICAgIHJldHVybiB0aGlzOwogfQogCi1Mb2NhbGl6YXRpb25TdHJhdGVneSogUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCkKLXsKLSAgICByZXR1
cm4gdGhpczsKLX0KLQogVmlzaXRlZExpbmtTdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKQogewogICAgIHJldHVybiB0aGlzOwpAQCAtMTUw
LDYwOCArMTQ1LDYgQEAgdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Z2V0UGx1Z2luSW5mbyhj
b25zdCBXZWJDb3JlOjpQYWdlKiBwYWdlLCBWZWN0b3I8V2ViQ28KIAogfQogCi0KLS8vIExvY2Fs
aXphdGlvblN0cmF0ZWd5Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6aW5wdXRFbGVt
ZW50QWx0VGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkgYWx0IHRleHQgZm9y
IDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXNl
dCIsICJkZWZhdWx0IGxhYmVsIGZvciBSZXNldCBidXR0b25zIGluIGZvcm1zIG9uIHdlYiBwYWdl
cyIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnNlYXJjaGFibGVJbmRleElu
dHJvZHVjdGlvbigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3
b3JkczogIiwgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBuZWFybHktb2Jzb2xl
dGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgnIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJT
dWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2Vi
IHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZmlsZUJ1dHRvbkNo
b29zZUZpbGVMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZpbGUiLCAidGl0bGUgZm9yIGEgc2luZ2xlIGZpbGUgY2hv
b3NlciBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZp
bGVzIiwgInRpdGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNlZCBpbiBI
VE1MIGZvcm1zLiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uTm9GaWxlU2VsZWN0
ZWRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiTm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0
b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3RlZCIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJl
bCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiTm8gZmlsZXMgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVz
ZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGVzIGFyZSBzZWxlY3RlZCBhbmQgdGhlIGJ1dHRv
biBhbGxvd3MgbXVsdGlwbGUgZmlsZXMgdG8gYmUgc2VsZWN0ZWQiKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZXRhaWxzIiwg
InRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1tYXJ5
PiBjaGlsZCIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gaW4gTmV3IFdpbmRvdyIsICJPcGVuIGlu
IE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQotewotICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNhdmUgTGlu
ay4uLiIsICJEb3dubG9hZCBMaW5rZWQgRmlsZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9D
bGlwYm9hcmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1h
Z2VJbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiT3BlbiBJbWFnZSIsICJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3cgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZlIEltYWdlIiwgIkRvd25sb2Fk
IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgSW1hZ2Ui
LCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNv
cHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3MgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVv
SW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIk9wZW4gVmlkZW8iLCAiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93Iik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1
ZGlvSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIk9wZW4gQXVkaW8iLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93Iik7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IFZpZGVvIiwgIkNvcHkgVmlkZW8gTGluayBMb2Nh
dGlvbiIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBBdWRpbyIsICJDb3B5IEF1ZGlvIExp
bmsgTG9jYXRpb24iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xl
IE1lZGlhIENvbnRyb2xzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgTG9vcCIsICJUb2dnbGUgTWVk
aWEgTG9vcCBQbGF5YmFjayIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJFbnRlciBGdWxsc2NyZWVuIiwg
IlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXkiKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBh
dXNlKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJQYXVzZSIsICJQYXVzZSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSIsICJNdXRlIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIk9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiQ29weSIsICJDb3B5IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJHbyBCYWNr
IiwgIkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEZvcndhcmQiLCAiRm9yd2Fy
ZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN0b3AiLCAiU3RvcCBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1Jl
bG9hZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3V0IiwgIkN1dCBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXN0ZSIsICJQYXN0ZSBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1Nl
bGVjdEFsbCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiU2VsZWN0IEFsbCIsICJTZWxlY3QgQWxsIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVz
c2VzRm91bmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8gR3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51
SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJZ25vcmUiLCAiSWdub3JlIFNwZWxsaW5nIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQWRkIFRvIERpY3Rpb25hcnkiLCAiTGVhcm4gU3BlbGxp
bmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlYXJjaCBUaGUgV2ViIiwgIlNlYXJjaCBU
aGUgV2ViIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYp
Ci17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
TG9vayBVcCBJbiBEaWN0aW9uYXJ5IiwgIkxvb2sgVXAgaW4gRGljdGlvbmFyeSBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
SWdub3JlR3JhbW1hcigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTcGVsbGluZyIsICJTcGVsbGluZyBhbmQgR3JhbW1hciBjb250ZXh0IHN1
Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0
TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpCi17Ci0gICAgcmV0dXJuIHNo
b3cgPyBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNob3cgU3BlbGxp
bmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIikgOgotICAgICAgICAgICAgICAgICAg
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJIaWRlIFNwZWxsaW5nIGFu
ZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5n
IiwgIkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlw
aW5nKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcgd2hpbGUg
dHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaGVjayBH
cmFtbWFyIFdpdGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4
dE1lbnVJdGVtVGFnRm9udE1lbnUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkZvbnRzIiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
Qm9sZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJdGFsaWMiLCAiSXRh
bGljIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29u
dGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVt
VGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRpcmVjdGlvbiIsICJXcml0aW5nIGRpcmVjdGlvbiBj
b250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVGV4dCBEaXJlY3Rpb24iLCAi
VGV4dCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRGVm
YXVsdCIsICJEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRv
UmlnaHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ1Jp
Z2h0VG9MZWZ0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExlZnQgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdJbnNwZWN0RWxlbWVudCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiSW5zcGVjdCIsICJJbnNwZWN0IEVsZW1lbnQgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hNZW51Tm9S
ZWNlbnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Igb25seSBp
dGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVs
ZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgp
Ci17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
UmVjZW50IHNlYXJjaGVzIiwgImxhYmVsIGZvciBmaXJzdCBpdGVtIGluIHRoZSBtZW51IHRoYXQg
YXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHVzZWQgYXMg
ZW1iZWRkZWQgbWVudSB0aXRsZSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2xlYXIgcmVjZW50IHNlYXJjaGVz
IiwgIm1lbnUgaXRlbSBpbiBSZWNlbnQgU2VhcmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdz
IGNvbnRlbnRzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhXZWJBcmVh
VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhMaW5rVGV4dCgpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6QVhMaXN0TWFya2VyVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6QVhJbWFnZU1hcFRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYSGVhZGluZ1Rl
eHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OkFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0OjpBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OkFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OkFYTWVudUxpc3RBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpB
WE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWExp
bmtBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJp
bmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjptaXNzaW5nUGx1Z2luVGV4
dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiTWlzc2luZyBQbHVnLWluIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Zy1p
biBpcyBtaXNzaW5nIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y3Jhc2hl
ZFBsdWdpblRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmlu
ZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6Om11bHRpcGxlRmlsZVVwbG9h
ZFRleHQodW5zaWduZWQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3Ry
aW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dW5rbm93bkZpbGVTaXpl
VGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlzdGluZyBp
dGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6aW1hZ2VUaXRsZShjb25z
dCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxICglMnglMyBwaXhlbHMp
IiwgIlRpdGxlIHN0cmluZyBmb3IgaW1hZ2VzIikuYXJnKGZpbGVuYW1lKS5hcmcoc2l6ZS53aWR0
aCgpKS5hcmcoc2l6ZS5oZWlnaHQoKSk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTG9hZGluZy4uLiIsICJNZWRpYSBjb250
cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gdGhlIG1lZGlhIGlzIGxvYWRpbmciKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3Rh
dGVUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJMaXZlIEJyb2FkY2FzdCIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdl
IHdoZW4gd2F0Y2hpbmcgYSBsaXZlIGJyb2FkY2FzdCIpOwotfQotCi0jaWYgRU5BQkxFKFZJREVP
KQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVs
ZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09ICJBdWRp
b0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJBdWRpbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwot
ICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBFbGVtZW50IiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSBC
dXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlVu
TXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlVubXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
Ci0gICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IEJ1dHRvbiIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSBC
dXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNs
aWRlciIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlNsaWRlciIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFt
ZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJTbGlkZXIgVGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBCdXR0b24iLCAi
TWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVh
bHRpbWVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJSZXR1cm4gdG8gUmVhbC10aW1lIEJ1dHRvbiIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRWxh
cHNlZCBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09
ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBUaW1lIiwgIk1lZGlhIGNvbnRyb2xs
ZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RhdHVzIERp
c3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIkZ1
bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJGdWxsc2NyZWVuIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQotICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEZvcndh
cmQgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09
ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgQmFjayBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0
cmluZyYgbmFtZSkKLXsKLSAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQXVkaW8gZWxl
bWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlZpZGVvIGVs
ZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKLSAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSBhdWRp
byB0cmFja3MiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0g
IlVuTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlVubXV0ZSBhdWRpbyB0cmFja3MiLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQotICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCZWdpbiBwbGF5YmFjayIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0
b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJQYXVzZSBwbGF5YmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBp
ZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTW92aWUgdGltZSBzY3J1YmJlciIsICJNZWRpYSBjb250cm9s
bGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3ZpZSB0aW1l
IHNjcnViYmVyIHRodW1iIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChu
YW1lID09ICJSZXdpbmRCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXdpbmQgbW92aWUiLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXR1
cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwtdGltZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKLSAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3VycmVudCBtb3Zp
ZSB0aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJU
aW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbWFpbmluZyBtb3ZpZSB0aW1lIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ3VycmVu
dCBtb3ZpZSBzdGF0dXMiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5h
bWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IG1vdmllIGluIGZ1bGwtc2NyZWVuIG1vZGUi
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3
YXJkQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiU2VlayBxdWlja2x5IGJhY2siLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBxdWlja2x5IGZvcndh
cmQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsKLSAgICBp
ZiAoIWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJJbmRlZmluaXRlIHRpbWUiLCAiTWVkaWEgdGltZSBkZXNjcmlw
dGlvbiIpOwotCi0gICAgaW50IHNlY29uZHMgPSAoaW50KWZhYnNmKHRpbWUpOwotICAgIGludCBk
YXlzID0gc2Vjb25kcyAvICg2MCAqIDYwICogMjQpOwotICAgIGludCBob3VycyA9IHNlY29uZHMg
LyAoNjAgKiA2MCk7Ci0gICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOwotICAg
IHNlY29uZHMgJT0gNjA7Ci0KLSAgICBpZiAoZGF5cykKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgZGF5cyAlMiBob3VycyAlMyBtaW51
dGVzICU0IHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhkYXlzKS5hcmco
aG91cnMpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7Ci0KLSAgICBpZiAoaG91cnMpCi0gICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGhv
dXJzICUyIG1pbnV0ZXMgJTMgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJn
KGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOwotCi0gICAgaWYgKG1pbnV0ZXMpCi0g
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUx
IG1pbnV0ZXMgJTIgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKG1pbnV0
ZXMpLmFyZyhzZWNvbmRzKTsKLQotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIiUxIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFy
ZyhzZWNvbmRzKTsKLX0KLQotI2Vsc2UgLy8gRU5BQkxFKFZJREVPKQotLy8gRklYTUU6ICNpZiBF
TkFCTEUoVklERU8pIHNob3VsZCBiZSBpbiB0aGUgYmFzZSBjbGFzcwotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3Qg
U3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29u
c3QgU3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0
aW1lKQotewotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShWSURF
TykKLQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3Ry
aW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9u
TWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZh
bGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi0KIC8vIFZpc2l0ZWRM
aW5rU3RyYXRlZ3kKIAogYm9vbCBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6aXNMaW5rVmlzaXRlZChQ
YWdlKiBwYWdlLCBMaW5rSGFzaCBoYXNoLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGF0dHJpYnV0ZVVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaAppbmRleCA4ZDM0ZGMwYmMwZjg4MTlm
M2ZhODA1NWZmYTI2NmJhZGZjMjBlZjA4Li45ZGQ3ZTc5Y2ZkMjM3ZmQ4NDQ5ZjM5ODY5OWJkMmI4
Yjc4ZTY1MjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1Bs
YXRmb3JtU3RyYXRlZ2llc1F0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDEwIElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29w
eXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQogICoKQEAgLTI5LDcgKzI5LDYgQEAKICNkZWZpbmUgUGxhdGZvcm1TdHJhdGVnaWVzUXRf
aAogCiAjaW5jbHVkZSA8Q29va2llc1N0cmF0ZWd5Lmg+Ci0jaW5jbHVkZSA8TG9jYWxpemF0aW9u
U3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxQbGF0Zm9ybVN0cmF0ZWdpZXMuaD4KICNpbmNsdWRlIDxQ
bHVnaW5TdHJhdGVneS5oPgogI2luY2x1ZGUgPFZpc2l0ZWRMaW5rU3RyYXRlZ3kuaD4KQEAgLTM5
LDcgKzM4LDcgQEAgY2xhc3MgUGFnZTsKIGNsYXNzIFBhc3RlYm9hcmRTdHJhdGVneTsKIH0KIAot
Y2xhc3MgUGxhdGZvcm1TdHJhdGVnaWVzUXQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJh
dGVnaWVzLCBwcml2YXRlIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3Jl
OjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneSwg
cHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5IHsKK2NsYXNzIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBX
ZWJDb3JlOjpDb29raWVzU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ks
IHByaXZhdGUgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZSgpOwogCkBAIC00OSw3ICs0OCw2IEBAIHByaXZhdGU6CiAgICAg
Ly8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgdmlydHVhbCBXZWJDb3JlOjpDb29r
aWVzU3RyYXRlZ3kqIGNyZWF0ZUNvb2tpZXNTdHJhdGVneSgpOwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCk7Ci0gICAgdmlydHVhbCBX
ZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneSogY3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3ko
KTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0
ZWRMaW5rU3RyYXRlZ3koKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVn
eSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCk7CiAgICAgCkBAIC02MCwxMDEgKzU4LDYgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0UGx1Z2luSW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNvcmU6
OlBsdWdpbkluZm8+Jik7CiAKLSAgICAvLyBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneQot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIHNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlw
Ym9hcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5J
bWFnZUluTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJik7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOwot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxp
bmdQYW5lbChib29sIHNob3cpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ2hlY2tTcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCk7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQo
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVt
ZW50KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlk
ZW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRy
b2xzKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUxvb3AoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Vu
dGVyVmlkZW9GdWxsc2NyZWVuKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBsYXkoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhTXV0ZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudU5v
UmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51
UmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51
Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYV2Vi
QXJlYVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTGlua1RleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWEhlYWRp
bmdUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWERlZmluaXRpb25MaXN0VGVybVRl
eHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9u
VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBBWE1lbnVMaXN0QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
QVhMaW5rQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbWlzc2luZ1BsdWdp
blRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCk7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51
bWJlck9mRmlsZXMpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4
dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBXVEY6OlN0cmlu
ZyYgZmlsZW5hbWUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgV1RG
OjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJv
bEVsZW1lbnRIZWxwVGV4dChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4
dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4
dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVy
Zmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dCgpOwotCiAgICAgLy8gV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJh
dGVneQogICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFdlYkNvcmU6OlBhZ2UqLCBXZWJD
b3JlOjpMaW5rSGFzaCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgYmFzZVVSTCwgY29uc3QgV1RGOjpB
dG9taWNTdHJpbmcmIGF0dHJpYnV0ZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZFZpc2l0ZWRM
aW5rKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFLmgKaW5kZXggOTJkMzdkYzY1MzYyYTk1NWU2MWMwOWE1ZmIzNjFlY2ViNWZjZTNhMC4uNDdi
MGUzNDI1YzdjNGI2NmNhNzg0N2Y4MmU3NThiNmMxZTIzMzIyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
V2luQ0UuaApAQCAtMjYsNyArMjYsNiBAQAogI2RlZmluZSBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5D
RV9oCiAKICNpbmNsdWRlICJDb29raWVzU3RyYXRlZ3kuaCIKLSNpbmNsdWRlICJMb2NhbGl6YXRp
b25TdHJhdGVneS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUg
IlBsdWdpblN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdHJhdGVneS5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127047</attachid>
            <date>2012-02-14 14:28:45 -0800</date>
            <delta_ts>2012-02-20 20:50:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78324-20120214142844.patch</filename>
            <type>text/plain</type>
            <size>210271</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZiYTE4MmY2YjE4MDg4
NGZlYjAyY2VkM2FmYmUxYjQ1NGQ0ZWE4Ni4uZTI1OGZkYWQ3ZTQ0OTcxYjZlODRkZDZiYmQ1Y2Uz
ZDFlM2U0NTM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3MCBAQAorMjAxMi0wMi0xNCAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIExvY2FsaXphdGlvblN0cmF0ZWd5IGFuZCB1bmlmeSB0
aGUgbG9jYWxpemF0aW9uIGJlaGluZAorICAgICAgICBMb2NhbGl6ZWRTdHJpbmdzLmggYW5kIExv
Y2FsaXplZFN0cmluZ3MuY3BwLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5Lmg6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjp0
cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjppbnB1
dEVsZW1lbnRBbHRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxl
QnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVC
dXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25O
b0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0RGV0YWlsc1N1
bW1hcnlUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBi
b2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5l
d1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZElt
YWdlVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFn
ZVRvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29CYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1JlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdD
dXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoV2ViKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEluRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTGluayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25v
cmVHcmFtbWFyKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5n
TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQ
YW5lbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1t
YXJXaXRoU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRm9u
dE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ1VuZGVybGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPdXRsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0eWxl
cyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZyk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0TGlua3MpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4
dFJlcGxhY2VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RyYW5z
Zm9ybWF0aW9uc01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWFr
ZVVwcGVyQ2FzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93
ZXJDYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlu
a1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVy
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhX
ZWJBcmVhVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFYTGlzdE1hcmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZU1hcFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhIZWFkaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWERlZmluaXRpb25MaXN0VGVybVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0
aW9uTGlzdERlZmluaXRpb25UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYQVJJQUNvbnRlbnRH
cm91cFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYVGV4dEZpZWxkQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVj
a0JveEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFj
dGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaW5rQWN0aW9uVmVyYik6CisgICAgICAg
IChXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYTWVudUxpc3RBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6Om1pc3NpbmdQbHVnaW5U
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6Om11bHRpcGxlRmlsZVVwbG9hZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dW5rbm93
bkZpbGVTaXplVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1cGxvYWRGaWxlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjphbGxGaWxlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbHRJblBE
RlBsdWdpbk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6cGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW01MTIpOgorICAgICAgICAoV2Vi
Q29yZTo6a2V5Z2VuTWVudUl0ZW0xMDI0KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbk1lbnVJ
dGVtMjA0OCk6CisgICAgICAgIChXZWJDb3JlOjprZXlnZW5LZXljaGFpbkl0ZW1OYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6Omh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKToKKyAgICAgICAgKFdlYkNv
cmU6OmltYWdlVGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TG9hZGluZ1N0
YXRlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3Rh
dGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhl
bHBUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNr
Ym94VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2lu
Z0ZvckZpbGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVN
aXNzaW5nRm9yTXVsdGlwbGVGaWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVZhbHVlTWlzc2luZ0ZvclJhZGlvVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclNlbGVjdFRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNo
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXM6OlBsYXRmb3JtU3RyYXRlZ2llcyk6CisgICAg
ICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0xvY2FsaXpl
ZFN0cmluZ3NRdC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjppbnB1dEVsZW1lbnRBbHRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0
QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaGFibGVJbmRleElu
dHJvZHVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwp
OgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCk6CisgICAgICAg
IChXZWJDb3JlOjpmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpk
ZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzayk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
Q29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxh
eSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0dvQmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdHb0ZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ3V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1Bhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1NlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdOb0d1
ZXNzZXNGb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVT
cGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxs
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYik6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmspOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcik6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnSXRhbGljKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVy
bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNl
YXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVu
dUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYV2ViQXJlYVRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaW5rVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpB
WExpc3RNYXJrZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2VNYXBUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYSGVhZGluZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZp
bml0aW9uTGlzdFRlcm1UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEJ1dHRvbkFjdGlvblZlcmIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhUZXh0RmllbGRBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYQ2hlY2tl
ZENoZWNrQm94QWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFVuY2hlY2tlZENoZWNr
Qm94QWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWE1lbnVMaXN0QWN0aW9uVmVyYik6
CisgICAgICAgIChXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYTGlua0FjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6bWlzc2luZ1Bs
dWdpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp1
bmtub3duRmlsZVNpemVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVGl0bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckZpbGVUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yTXVsdGlwbGVGaWxl
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0Zv
clJhZGlvVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ0ZvclNlbGVjdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKwogMjAxMi0wMi0xMiAgVGltb3RoeSBI
YXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgaW5jbHVkZSBDYWNo
ZWRSZXNvdXJjZXMgdGhhdCBoYXZlbid0IGRvd25sb2FkZWQgd2hlbiBwb3B1bGF0aW5nIHRoZSBX
ZWIgSW5zcGVjdG9yIG9uIGxvYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDIzYzVlNzZjMGU0Njc5YzRj
MzZhMDQwZTZlOWQ4NTM5NTViMTM0MTEuLjEwNTc0Zjc4Y2NiZDg3MmFhZDU5YTA1MjQ4N2JlNTBm
ZDVlMDJmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDItMTQgIEJl
bmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQg
b2YgdGhlIExvY2FsaXphdGlvblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGxvY2FsaXphdGlvbiBjb2RlIGZyb20gUGxhdGZv
cm1TdHJhdGVnaWVzUXQuY3BwCisgICAgICAgIHRvIExvY2FsaXplZFN0cmluZ3NRdC5jcHAuCisK
KyAgICAgICAgR2V0IHJpZCBvZiBMb2NhbGl6YXRpb25TdHJhdGVneSBmcm9tIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNR
dC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaDoK
KyAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc1F0KToKKwogMjAxMi0wMi0xMSAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHN2Zy9h
bmltYXRpb25zIHRvIHVzZSBTTUlMIG1ldGhvZHMgZm9yIGRyaXZpbmcgdGhlIHRpbWVsaW5lCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCmluZGV4IDZkMmE3ZTY0N2IyZTBhZTA5YjdmNzZjYzA2NzI2Nzg1OTNm
OTIxMzEuLjhhM2VhY2FlMDNiOTBhNjUyYmVhMzU2M2U2OTQ2Mzc3YTJkZmM5OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTQgIEJlbmphbWluIFBvdWxh
aW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIExvY2Fs
aXphdGlvblN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSBhIHVzZWxlc3MgI2luY2x1ZGUgb2YgTG9jYWxpemF0aW9uU3RyYXRlZ3ku
aC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmg6
CisKIDIwMTEtMTItMTkgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBN
b3JlIFBsYXRmb3JtRXZlbnQgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkZTA5MGU2
MTYzMTQxOGZkMDQzYzhhODkxNmQ3NmY3MjlhMjQ4NThkLi5jMmQ1Yjg3OTdkNWRjMDA4OWIzZTFm
ZTJlM2UwMWZlODNkZjQzMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA1Nyw3ICsxMDU3
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0NvbnRlbnRUeXBlLmNwcAog
ICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAogICAgIHBsYXRmb3JtL0RhdGVDb21w
b25lbnRzLmNwcAotICAgIHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAK
ICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCiAg
ICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBkYjgwMjExNDBkOTA0OWIzYjVmNDRhOTg0MzBmNmZmMDUyMWJhYWExLi43NGUxZWJlNjU4
ZDQ0ODhjMGQwMTE1NWJlODIxYzNiYWJmYjdiOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTI4MzMsOCArMjgzMyw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rh
dGVDb21wb25lbnRzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVu
dHMuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRHJhZ0ltYWdlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA2Zjc2OWIxZGFjNDA2NWI5MTE5MTFm
MzhhNjkzODY0OTQxN2Y2MDU0Li44ZTVkZjRlMmE0N2Y0YjMxZDY1Yjc1MjJmOTQ3YTYxYzFlOTc4
ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEwMzgsNyArMTAzOCw2IEBAIFNPVVJDRVMgKz0gXAogICAg
IHBsYXRmb3JtL0NvbnRlbnRUeXBlLmNwcCBcCiAgICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3Bp
ZXIuY3BwIFwKICAgICBwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgXAotICAgIHBsYXRmb3Jt
L0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgXAogICAgIHBsYXRmb3JtL0RyYWdEYXRh
LmNwcCBcCiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZUNo
b29zZXIuY3BwIFwKQEAgLTExNzIsNyArMTE3MSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRm
b3JtL1VVSUQuY3BwIFwKICAgICBwbGF0Zm9ybS9XaWRnZXQuY3BwIFwKICAgICBwbGF0Zm9ybS9Q
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwKLSAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNw
cCBcCiAgICAgcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHAgXAogICAgIHBsdWdpbnMvUGx1
Z2luRGF0YWJhc2UuY3BwIFwKICAgICBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcCBcCkBAIC0yMDk1
LDcgKzIwOTMsNiBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudS5oIFwK
ICAgICBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIFwKICAgICBwbGF0Zm9ybS9EYXRlQ29t
cG9uZW50cy5oIFwKLSAgICBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBc
CiAgICAgcGxhdGZvcm0vRHJhZ0RhdGEuaCBcCiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmggXAog
ICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmggXApAQCAtMjg0MCw2ICsyODM3LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vcXQvU291bmRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0xv
Z2dpbmdRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0xhbmd1YWdlUXQuY3BwIFwKKyAgICBwbGF0
Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9UZW1wb3Jh
cnlMaW5rU3R1YnNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJvdW5kYXJpZXNR
dC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VVF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGRhM2U3ODRjNTk0MjE3MTQ4MDdlNDM1
MGJmNWE4NzgxZTliYmFhMGQuLmYxYTYxMzE2ZjlhMmQ1NjJkZDg0MjEyZTRjZDkzOTIyOTBlZjA0
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01NDgsNyArNTQ4LDYgQEAgX19aTjdXZWJDb3Jl
MTdSZWd1bGFyRXhwcmVzc2lvbkQxRXYKIF9fWk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1cmVF
UE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05TMl85Q2xhc3NJbmZv
RQogX19aTjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVSS04zV1RGNlN0cmluZ0VSaQogX19a
TjdXZWJDb3JlMThIVE1MQ29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCi1fX1pO
N1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llczI2Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3lF
dgogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQxM2J1ZmZlckZvclR5cGVFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtUGFzdGVib2FyZDEzc3RyaW5nRm9yVHlw
ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkMTlzZXRQ
YXRobmFtZXNGb3JUeXBlRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVFRVJLUzNfCkBA
IC0xNDg4LDcgKzE0ODcsNiBAQCBfX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5
SWRFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aVFZON1dlYkNvcmUxMkNocm9tZUNsaWVudEUK
IF9fWlRWTjdXZWJDb3JlMTZJY29uRGF0YWJhc2VCYXNlRQogX19aVFZON1dlYkNvcmUxN0ZyYW1l
TG9hZGVyQ2xpZW50RQotX19aVFZON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llc0UKIF9fWlRW
TjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQogX19aVFZON1dlYkNvcmUyOElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw4U2V0dGluZ3NFCiBfZmlsZW5hbWVCeUZpeGluZ0ls
bGVnYWxDaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZmIxNmE1ZmY5Yzk1MDljZjliYmUw
ZmY0MDg5ZTQxZmY0MDA1MWEzMS4uYWQ3ZmM5NjFjNTkyNDczNTFjYjIxMmNiMDBkM2MwYmM0NDM0
YmU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjUyLDcgKzI1Miw2IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0N1cnNv
ci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oJywKLSAgICAgICAg
ICAgICdwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vRHJhZ0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0ltYWdl
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgnLApAQCAtMjY4LDcgKzI2
Nyw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vTGVuZ3RoQm94LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL0xlbmd0aFNpemUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTGlua0hhc2gu
aCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9Mb2dnaW5nLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5oJywKQEAgLTI3MzcsNyArMjczNSw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Jv
c3NUaHJlYWRDb3BpZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ3Vyc29yLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9EcmFnRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdJbWFnZS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0V2ZW50TG9vcC5oJywKQEAgLTI3NjEsNyArMjc1
OCw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vTGFuZ3VhZ2UuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9MZW5ndGguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9MaW5rSGFzaC5j
cHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9Mb2dnaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggNDk3YmIxMzkwMjZmNDA1ZGE1MTUz
YTZkOTczNjUxNDRiM2M4NmI4Yy4uM2Q5MWEzN2FjZTk0NTRmMzM0MTFkM2RlZTcxZTNjOGI5MmJl
M2JjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC01MzI5LDkgKzUzMjksNiBAQCBfX1pOSzdXZWJD
b3JlMTlBY2Nlc3NpYmlsaXR5T2JqZWN0MTVpc01lZGlhVGltZWxpbmVFdgogLVtBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciByb2xlRGVzY3JpcHRpb25dCiBfX1pON1dlYkNvcmUxM0FYSGVhZGlu
Z1RleHRFdgogX19aTjdXZWJDb3JlMjFoYXNQbGF0Zm9ybVN0cmF0ZWdpZXNFdgotX19aTjdXZWJD
b3JlMThQbGF0Zm9ybVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5QzFFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxM0FYSGVhZGluZ1RleHRFdgogX19aTks3V2Vi
Q29yZTI1QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDRzaXplRXYKIF9fWk5LN1dlYkNvcmUyNUFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxMWVsZW1lbnRSZWN0RXYKIF9fWk5LN1dlYkNvcmUxOUFj
Y2Vzc2liaWxpdHlPYmplY3QxM2lzUmFkaW9CdXR0b25FdgpAQCAtNjY4MCw3ICs2Njc3LDYgQEAg
X19aTks3V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIyNWlzTG9hZGluZ011bHRpcGFydENvbnRlbnRF
dgogX19aTks3V2ViQ29yZTRLVVJMMTdsYXN0UGF0aENvbXBvbmVudEV2CiBfX1pON1dlYkNvcmUy
NGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEw
aW1hZ2VUaXRsZUVSS04zV1RGNlN0cmluZ0VSS05TXzdJbnRTaXplRQotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxMGltYWdlVGl0bGVFUktOM1dURjZTdHJpbmdFUktO
U183SW50U2l6ZUUKIF9fWk43V2ViQ29yZUwyMWZvcm1hdExvY2FsaXplZFN0cmluZ0VOM1dURjZT
dHJpbmdFegogX19aTjdXZWJDb3JlOERvY3VtZW50OHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgpAQCAtNjczMCw3ICs2NzI2LDYgQEAgX19aTjdX
ZWJDb3JlMTZKU0hUTUxQcmVFbGVtZW50MTVjcmVhdGVQcm90b3R5cGVFUE4zSlNDOUV4ZWNTdGF0
ZUVQTlMxXzE0SlNHbG9iYWwKIF9fWk43V2ViQ29yZTE2SlNIVE1MUHJlRWxlbWVudEMxRVBOM0pT
QzlTdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFTjNXVEYxMFBhc3NSZWZQdHJJTlNf
MTRIVE1MUHJlRWxlbWVudEVFRQogX19aTjdXZWJDb3JlMTJjYWNoZVdyYXBwZXJJTlNfMTRIVE1M
UHJlRWxlbWVudEVFRXZQTlNfMTVET01XcmFwcGVyV29ybGRFUFRfUE5TXzEySlNET01XcmFwcGVy
RQogX19aTjdXZWJDb3JlMTNBWFdlYkFyZWFUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MTNBWFdlYkFyZWFUZXh0RXYKIF9fWk43V2ViQ29yZTEwUmVuZGVy
VmlldzEzYWJzb2x1dGVRdWFkc0VSTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTG0wRUVFCiBf
X1pON1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QxNmdldERvY3VtZW50TGlua3NF
Uk4zV1RGNlZlY3RvcklOUzFfNlJlZlB0cklOU18xOUFjY2Vzc2liaWxpdHlPYmplY3RFRUVMbTBF
RUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDVsaW5rc0V2CkBAIC02NzQwLDcgKzY3MzUsNiBAQCBf
X1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MTFsYXlvdXRDb3VudEV2CiBf
X1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MjRlc3RpbWF0ZWRMb2FkaW5n
UHJvZ3Jlc3NFdgogX19aTks3V2ViQ29yZTE1UHJvZ3Jlc3NUcmFja2VyMTdlc3RpbWF0ZWRQcm9n
cmVzc0V2CiBfX1pON1dlYkNvcmUxMEFYTGlua1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kxMEFYTGlua1RleHRFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJJ
bmxpbmUyNWN1bGxlZElubGluZUFic29sdXRlUmVjdHNFUEtTMF9STjNXVEY2VmVjdG9ySU5TXzdJ
bnRSZWN0RUxtMEVFRVJLTlNfN0ludFNpemVFCiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0MTlpbnRlcm5hbExpbmtFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUxN0hUTUxB
bmNob3JFbGVtZW50NGhyZWZFdgpAQCAtNjg5MSw5ICs2ODg1LDcgQEAgX19aTks3V2ViQ29yZTEz
SFRNTEhSRWxlbWVudDIzY2FuQ29udGFpblJhbmdlRW5kUG9pbnRFdgogX19aTks3V2ViQ29yZTE3
QWNjZXNzaWJpbGl0eUxpc3QxM2lzT3JkZXJlZExpc3RFdgogX19aTks3V2ViQ29yZTE3QWNjZXNz
aWJpbGl0eUxpc3QxNmlzRGVmaW5pdGlvbkxpc3RFdgogX19aTjdXZWJDb3JlMjRBWERlZmluaXRp
b25MaXN0VGVybVRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kyNEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dEV2CiBfX1pON1dlYkNvcmUzMEFYRGVmaW5pdGlv
bkxpc3REZWZpbml0aW9uVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTMwQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKIF9fWk43V2ViQ29yZTE5
SFRNTEZpZWxkU2V0RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTE3SFRNTExlZ2VuZEVsZW1lbnRE
MEV2CiBfX1pON1dlYkNvcmVMMTZ2aWRlb0NvbnN0cnVjdG9yRVJLTlNfMTNRdWFsaWZpZWROYW1l
RVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RWIKQEAgLTcxODIsNyArNzE3NCw2
IEBAIF9fWlRobjEyMF9ON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQzMG1lZGlhUGxheWVyTmV0
d29ya1N0YXRlQ2hhbmdlZEVQTlNfMTFNZWRpCiBfX1pON1dlYkNvcmUxMU1lZGlhUGxheWVyMTJu
ZXR3b3JrU3RhdGVFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTVzZXROZXR3b3Jr
U3RhdGVFTlNfMTFNZWRpYVBsYXllcjEyTmV0d29ya1N0YXRlRQogX19aTjdXZWJDb3JlMjhtZWRp
YUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5MjhtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0RXYKIF9fWk43V2ViQ29y
ZTM0TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzE5Y3JlYXRlQVZBc3NldEZvclVS
TEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTMwTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uMTdzZXREZWxheUNhbGxiYWNrc0ViCiBfX1pMMzhpbml0QVZVUkxBc3NldFJlZmVyZW5j
ZVJlc3RyaWN0aW9uc0tleXYKQEAgLTc0MTcsNyArNzQwOCw2IEBAIF9fWk5LN1dlYkNvcmUzNUFj
Y2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOXJvbGVWYWx1ZUV2CiBfX1pOSzdXZWJD
b3JlMzVBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjI0YWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uRXYKIF9fWk5LN1dlYkNvcmUzNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29u
dGFpbmVyMTVlbGVtZW50VHlwZU5hbWVFdgogX19aTjdXZWJDb3JlMzRsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzNGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmdF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUR5bmFtaWNOb2RlTGlzdDE1aW52YWxpZGF0
ZUNhY2hlRXYKIF9fWk5LN1dlYkNvcmUyNE1lZGlhQ29udHJvbElucHV0RWxlbWVudDIxaXNNZWRp
YUNvbnRyb2xFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2wyMmFjY2Vzc2liaWxpdHlJc0lnbm9yZWRFdgpAQCAtNzU1NCwxNCArNzU0NCwxMiBAQCBfX1pO
N1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTRzdHlsZURpZENoYW5nZUVOU18xNVN0
eWxlRGlmZmVyZW5jZUVQS05TXwogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDE3dXBkYXRlRnJvbUVsZW1lbnRFdgogX19aTjdXZWJDb3JlMThTaGFkb3dJbnB1dEVsZW1lbnQ2
Y3JlYXRlRVBOU18xMUhUTUxFbGVtZW50RQogX19aTjdXZWJDb3JlMjVmaWxlQnV0dG9uQ2hvb3Nl
RmlsZUxhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjVm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsRXYKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxMnZhbHVl
Q2hhbmdlZEV2CiBfX1pON1dlYkNvcmUyMkhUTUxGb3JtQ29udHJvbEVsZW1lbnQxMXNldERpc2Fi
bGVkRWIKIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wyOWNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzRXYKIF9fWk5LN1dlYkNvcmUxM0ZpbGVJbnB1dFR5cGUxMmlzRmls
ZVVwbG9hZEV2CiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTFwYWludE9i
amVjdEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjlmaWxlQnV0dG9uTm9GaWxlU2Vs
ZWN0ZWRMYWJlbEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI5
ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmpl
Y3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk43V2ViQ29yZTExUmVuZGVyQmxvY2sx
M2Fic29sdXRlUmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFRUVpaQogX19aVGhu
OF9ON1dlYkNvcmUxOUhUTUxUZXh0QXJlYUVsZW1lbnREMEV2CkBAIC03ODE3LDEwICs3ODA1LDcg
QEAgX19aTjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIx
RWRpdG9ySW50ZXJuYWxDb21tYW5kRUVOU18KIF9fWk4zV1RGOUhhc2hUYWJsZUlOU182U3RyaW5n
RVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFsQ29tbWFuZEVFTlNfMThQYWly
Rmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFzaEVOU18xNFBhaXJIYXNoVHJh
aXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNEX0U2bG9va3VwSVMxX05TXzIy
SWRlbnRpdHlIYXNoVHJhbnNsYXRvcklTMV9TN19TQV9FRUVFUFM3X1JLVF8KIF9fWk4zV1RGOUhh
c2hUYWJsZUlOU182U3RyaW5nRVN0NHBhaXJJUzFfUEtON1dlYkNvcmUyMUVkaXRvckludGVybmFs
Q29tbWFuZEVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzdfRUVOU18xNUNhc2VGb2xkaW5nSGFz
aEVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMV9FRU5TQ19JUzZfRUVFRVNE
X0U2cmVoYXNoRWkKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1
dGlvbnNFYgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k2c2hhcmVk
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVjb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uc0ViCiBfX1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRl
bVRhZ1Nob3dTcGVsbGluZ1BhbmVsRWIKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MzVjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbEViCiBfX1pON1dl
YkNvcmVMMjJjZW50ZXJUcnVuY2F0ZVRvQnVmZmVyRVJLTjNXVEY2U3RyaW5nRWpqUHQKIF9fWk43
V2ViQ29yZTExaXNUZXh0QnJlYWtFUE5TXzE3VGV4dEJyZWFrSXRlcmF0b3JFaQogX19aTjdXZWJD
b3JlMTVTUUxpdGVTdGF0ZW1lbnQ4YmluZE51bGxFaQpAQCAtMTE5NTAsNyArMTE5MzUsNiBAQCBf
X1pON1dlYkNvcmUyMmpzSFRNTENvbGxlY3Rpb25MZW5ndGhFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBf
N0pTVmFsdWVFUktOUzBfMTBJZGVudAogX19aTks3V2ViQ29yZTE3SFRNTE9iamVjdEVsZW1lbnQx
OGNvbnRhaW5zSmF2YUFwcGxldEV2CiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0
MzBzZXRTaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdtaXNzaW5n
UGx1Z2luVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3
bWlzc2luZ1BsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDEz
cGFpbnRSZXBsYWNlZEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJl
ZGRlZE9iamVjdDI2Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnlFaWlSTlNfOUZsb2F0UmVjdEVS
TlNfNFBhdGhFUzJfUk5TXzRGb250RVJOU183VGV4dFJ1bkVSZgogX19aTjdXZWJDb3JlNFBhdGgx
NGFkZFJvdW5kZWRSZWN0RVJLTlNfOUZsb2F0UmVjdEVSS05TXzlGbG9hdFNpemVFCkBAIC0xMjM3
MCw3ICsxMjM1NCw2IEBAIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxOWFsdEF0dHJpYnV0ZUNoYW5n
ZWRFdgogX19aTjNXVEY2U3RyaW5nMTBtYWtlU2VjdXJlRXQKIF9fWk43V2ViQ29yZTlJbnB1dFR5
cGUyN3Nob3VsZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZUV2CiBfX1pON1dlYkNvcmUxOWlucHV0RWxl
bWVudEFsdFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kx
OWlucHV0RWxlbWVudEFsdFRleHRFdgogX19aTks3V2ViQ29yZTE3UmVuZGVyVGV4dENvbnRyb2wz
NnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbkV2CiBfX1pON1dlYkNvcmUzMGpz
SFRNTElucHV0RWxlbWVudERlZmF1bHRWYWx1ZUVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1
ZUVSS05TMF8xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzMmpzSFRNTElucHV0RWxlbWVudERl
ZmF1bHRDaGVja2VkRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRp
ZmllckUKQEAgLTE1MDg2LDExICsxNTA2OSw4IEBAIF9fWk43V2ViQ29yZTE3SFRNTEtleWdlbkVs
ZW1lbnQ2Y3JlYXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1CiBf
X1pON1dlYkNvcmUxN0hUTUxLZXlnZW5FbGVtZW50QzJFUktOU18xM1F1YWxpZmllZE5hbWVFUE5T
XzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1lbnRFCiBfX1pON1dlYkNvcmUyMGdldFN1cHBv
cnRlZEtleVNpemVzRVJOM1dURjZWZWN0b3JJTlMwXzZTdHJpbmdFTG0wRUVFCiBfX1pON1dlYkNv
cmUxOGtleWdlbk1lbnVJdGVtMjA0OEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTE4a2V5Z2VuTWVudUl0ZW0yMDQ4RXYKIF9fWk43V2ViQ29yZTE4a2V5Z2VuTWVu
dUl0ZW0xMDI0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MThr
ZXlnZW5NZW51SXRlbTEwMjRFdgogX19aTjdXZWJDb3JlMTdrZXlnZW5NZW51SXRlbTUxMkV2Ci1f
X1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3a2V5Z2VuTWVudUl0ZW01
MTJFdgogX19aTjdXZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudEMyRVJLTlNfMTNRdWFsaWZpZWRO
YW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdXZWJDb3JlMTdI
VE1MT3B0aW9uRWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MRm9ybUVsZW1l
bnRFCiBfX1pON1dlYkNvcmUxM1NlbGVjdEVsZW1lbnQxM2Rlc2VsZWN0SXRlbXNFUk5TXzE3U2Vs
ZWN0RWxlbWVudERhdGFFUE5TXzdFbGVtZW50RVM0XwpAQCAtMTU1NzEsNjAgKzE1NTUxLDM0IEBA
IF9fWk43V2ViQ29yZTExQ29udGV4dE1lbnVDMUV2CiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51
QzJFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXI4cG9wdWxhdGVFdgogX19a
TjdXZWJDb3JlMjZjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0V2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI2Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtFdgog
X19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1DMUVOU18xOUNvbnRleHRNZW51SXRlbVR5cGVF
TlNfMTdDb250ZXh0TWVudUFjdGlvbkVSS04zV1RGNlN0cmluZ0VQTlNfMTFDb250ZXh0TWVudUUK
IF9fWk43V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtQzJFTlNfMTlDb250ZXh0TWVudUl0ZW1UeXBl
RU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFUE5TXzExQ29udGV4dE1lbnVF
CiBfX1pON1dlYkNvcmVMMzNjcmVhdGVQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb25FTlNfMTlD
b250ZXh0TWVudUl0ZW1UeXBlRU5TXzE3Q29udGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdF
YmIKIF9fWk43V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvd0V2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNvcmUzNmNvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkTGlua1RvRGlza0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTM2Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrRXYKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZEV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUxpbmtUb0NsaXBib2FyZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ09wZW5J
bWFnZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvd0V2CiBfX1pON1dlYkNv
cmUzN2NvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2tFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
SW1hZ2VUb0Rpc2tFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VU
b0NsaXBib2FyZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4
Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmRFdgogX19aTjdXZWJDb3JlMjdj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheUV2CiBfX1pON1dlYkNv
cmUyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlRXYKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sc0V2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9sc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMz
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4
dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW5FdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2Ny
ZWVuRXYKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0RXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVt
VGFnU2VhcmNoV2ViRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mjdjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWJFdgogX19aTjdXZWJDb3JlMjJjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MjJjb250ZXh0TWVudUl0ZW1UYWdDb3B5RXYKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVt
VGFnR29CYWNrRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRj
b250ZXh0TWVudUl0ZW1UYWdHb0JhY2tFdgogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1U
YWdHb0ZvcndhcmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ky
N2NvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZEV2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51
SXRlbVRhZ1N0b3BFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ky
MmNvbnRleHRNZW51SXRlbVRhZ1N0b3BFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1U
YWdSZWxvYWRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNv
bnRleHRNZW51SXRlbVRhZ1JlbG9hZEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRh
Z09wZW5GcmFtZUluTmV3V2luZG93RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvd0V2CiBfX1pO
N1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kRXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNz
ZXNGb3VuZEV2CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5n
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVu
dUl0ZW1UYWdJZ25vcmVTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRh
Z0xlYXJuU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kzMWNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlMzFjb250
ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyRXYKIF9fWk43
V2ViQ29yZTIxY29udGV4dE1lbnVJdGVtVGFnQ3V0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MjFjb250ZXh0TWVudUl0ZW1UYWdDdXRFdgogX19aTjdXZWJDb3Jl
MjNjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTIzY29udGV4dE1lbnVJdGVtVGFnUGFzdGVFdgogX19aTks3V2ViQ29yZTEz
SGl0VGVzdFJlc3VsdDE3aXNDb250ZW50RWRpdGFibGVFdgogX19aTks3V2ViQ29yZTIxQ29udGV4
dE1lbnVDb250cm9sbGVyMjFjaGVja09yRW5hYmxlSWZOZWVkZWRFUk5TXzE1Q29udGV4dE1lbnVJ
dGVtRQogX19aTks3V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtNHR5cGVFdgpAQCAtMTU2MzgsNyAr
MTU1OTIsNiBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTJtZWRpYUVsZW1lbnRFdgog
X19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRN
ZW51Q29udHJvbGxlcjIxYWRkSW5zcGVjdEVsZW1lbnRJdGVtRXYKIF9fWk43V2ViQ29yZTMyY29u
dGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50RXYKIF9f
Wk5LN1dlYkNvcmUxMUNvbnRleHRNZW51MTlwbGF0Zm9ybURlc2NyaXB0aW9uRXYKIF9fWk43V2Vi
Q29yZTExQ29udGV4dE1lbnUyMnNldFBsYXRmb3JtRGVzY3JpcHRpb25FUDE0TlNNdXRhYmxlQXJy
YXkKIF9fWk43V2ViQ29yZThEb2N1bWVudDIzYWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWRFUE5TXzRO
b2RlRQpAQCAtMTYyMTAsMTYgKzE2MTYzLDExIEBAIF9fWk5LN1dlYkNvcmUxOFRleHRDaGVja2lu
Z0hlbHBlcjQwZ3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZUViUmJTCiBf
X1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTRyZXBsYWNlZFN0cmluZ0V2CiBfX1pON1dlYkNv
cmVMMjlzZWxlY3Rpb25Db250YWluc1Bvc3NpYmxlV29yZEVQTlNfNUZyYW1lRQogX19aTjdXZWJD
b3JlMzBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudUV2
CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjQwY3JlYXRlQW5kQXBwZW5kU3Bl
bGxpbmdBbmRHcmFtbWFyU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNv
cmUzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdF
dgogX19aTjdXZWJDb3JlNDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBp
bmdFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k0MmNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRl
eHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTQyY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFy
V2l0aFNwZWxsaW5nRXYKIF9fWk43V2ViQ29yZTQ2Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNw
ZWxsaW5nQXV0b21hdGljYWxseUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTQ2Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseUV2
CiBfX1pON1dlYkNvcmU2RWRpdG9yMjJzcGVsbGluZ1BhbmVsSXNTaG93aW5nRXYKIF9fWk43V2Vi
Q29yZTE1Q29udGV4dE1lbnVJdGVtOHNldFRpdGxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJD
b3JlNkVkaXRvcjI0aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkRXYKQEAgLTE2MjI3LDY2ICsxNjE3
NSw0MSBAQCBfX1pON1dlYkNvcmU2RWRpdG9yMzZpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlv
bkVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW0xMHNldFN1Yk1lbnVFUE5T
XzExQ29udGV4dE1lbnVFCiBfX1pON1dlYkNvcmUxMUNvbnRleHRNZW51RDFFdgogX19aTjdXZWJD
b3JlMzVjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudUV2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM1Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0
aW9uc01lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIzNWNyZWF0ZUFu
ZEFwcGVuZFN1YnN0aXR1dGlvbnNTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43
V2ViQ29yZTMyY29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGVFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29w
eVBhc3RlRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXNFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0UXVvdGVzRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnU21hcnRE
YXNoZXNFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOWNvbnRl
eHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVt
VGFnU21hcnRMaW5rc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUzM2NvbnRleHRN
ZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTMzY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50RXYKIF9fWk43
V2ViQ29yZTZFZGl0b3IyN3N1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZ0V2CiBfX1pON1dlYkNv
cmU2RWRpdG9yMzVpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZEV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMzRpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkRXYKIF9fWk43
V2ViQ29yZTZFZGl0b3IzMWlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRFdgogX19aTjdX
ZWJDb3JlNkVkaXRvcjMzaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkRXYKIF9fWk43
V2ViQ29yZTM3Y29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRpb25zTWVudUV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM3Y29udGV4dE1lbnVJdGVtVGFnVHJh
bnNmb3JtYXRpb25zTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxlcjM3
Y3JlYXRlQW5kQXBwZW5kVHJhbnNmb3JtYXRpb25zU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0
ZW1FCiBfX1pON1dlYkNvcmUzMWNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2VFdgotX19a
TjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzMWNvbnRleHRNZW51SXRlbVRh
Z01ha2VVcHBlckNhc2VFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93
ZXJDYXNlRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250
ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJ
dGVtVGFnQ2FwaXRhbGl6ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTI4Y29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZUV2CiBfX1pON1dlYkNvcmUyNmNvbnRl
eHRNZW51SXRlbVRhZ0ZvbnRNZW51RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5MjZjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudUV2CiBfX1pON1dlYkNvcmUyMUNv
bnRleHRNZW51Q29udHJvbGxlcjI2Y3JlYXRlQW5kQXBwZW5kRm9udFN1Yk1lbnVFUk5TXzE1Q29u
dGV4dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHNF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51
SXRlbVRhZ1Nob3dGb250c0V2CiBfX1pON1dlYkNvcmUyMmNvbnRleHRNZW51SXRlbVRhZ0JvbGRF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMmNvbnRleHRNZW51
SXRlbVRhZ0JvbGRFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWNFdgot
X19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRl
bVRhZ0l0YWxpY0V2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZUV2
Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4dE1lbnVJ
dGVtVGFnVW5kZXJsaW5lRXYKIF9fWk43V2ViQ29yZTI1Y29udGV4dE1lbnVJdGVtVGFnT3V0bGlu
ZUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI1Y29udGV4dE1l
bnVJdGVtVGFnT3V0bGluZUV2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1N0eWxl
c0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1l
bnVJdGVtVGFnU3R5bGVzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU2hvd0Nv
bG9yc0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI4Y29udGV4
dE1lbnVJdGVtVGFnU2hvd0NvbG9yc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRh
Z1NwZWVjaE1lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ky
OGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVu
dUNvbnRyb2xsZXIyOGNyZWF0ZUFuZEFwcGVuZFNwZWVjaFN1Yk1lbnVFUk5TXzE1Q29udGV4dE1l
bnVJdGVtRQogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nRXYK
LV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0
ZW1UYWdTdGFydFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwY29udGV4dE1lbnVJdGVtVGFnU3Rv
cFNwZWFraW5nRXYKIF9fWk43V2ViQ29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
RVJLTjNXVEY2VmVjdG9ySU5TMF82U3RyaW5nRUxtMEVFRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzMGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZ0V2CiBf
X1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51RXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1U
YWdXcml0aW5nRGlyZWN0aW9uTWVudUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJv
bGxlcjM4Y3JlYXRlQW5kQXBwZW5kV3JpdGluZ0RpcmVjdGlvblN1Yk1lbnVFUk5TXzE1Q29udGV4
dE1lbnVJdGVtRQogX19aTjdXZWJDb3JlMzRjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0
aW9uRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzRjb250ZXh0
TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJ
dGVtVGFnTGVmdFRvUmlnaHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2ViQ29yZTI5Y29u
dGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kyOWNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0RXYKIF9fWk5LN1dl
YkNvcmU2RWRpdG9yMTZoYXNCaWRpU2VsZWN0aW9uRXYKIF9fWk5LN1dlYkNvcmUxM0tleWJvYXJk
RXZlbnQ4Y2hhckNvZGVFdgogX19aTjdXZWJDb3JlMThqc0RPTVNlbGVjdGlvblR5cGVFUE4zSlND
OUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTYyOTUsNyAr
MTYyMTgsNiBAQCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJCbG9jazI0Y29udGFpbnNOb25aZXJvQmlk
aUxldmVsRXYKIF9fWk5LN1dlYkNvcmUxOUFwcGx5UHJvcGVydHlMZW5ndGhJTE5TXzEwTGVuZ3Ro
QXV0b0UxRUxOU18xNUxlbmd0aEludHJpbnNpY0UxRUxOU18xOExlbmd0aE1pbkludHJpbnNpY0Ux
RUxOU18xMExlbmd0aE5vbmVFMUVMTlNfMTVMZW5ndGhVbmRlZmluZWRFMUVFMTBhcHBseVZhbHVl
RVBOU18xNkNTU1N0eWxlU2VsZWN0b3JFUE5TXzhDU1NWYWx1ZUUKIF9fWk43V2ViQ29yZTExUmVu
ZGVyU3R5bGUxMXNldE1heFdpZHRoRU5TXzZMZW5ndGhFCiBfX1pON1dlYkNvcmUzNmNvbnRleHRN
ZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzZjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJ
bkRpY3Rpb25hcnlFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMjZoYXNJbnNwZWN0b3JGcm9udGVuZENsaWVudEV2CiBfX1pOSzdXZWJDb3JlMjFCYWNr
Rm9yd2FyZENvbnRyb2xsZXIxOGNhbkdvQmFja09yRm9yd2FyZEVpCiBfX1pOSzdXZWJDb3JlNFBh
Z2UxOGNhbkdvQmFja09yRm9yd2FyZEVpCkBAIC0xNzA2Myw3ICsxNjk4NSw2IEBAIF9fWk43V2Vi
Q29yZTE0U1ZHU01JTEVsZW1lbnQyMGRpc2Nvbm5lY3RDb25kaXRpb25zRXYKIF9fWk43V2ViQ29y
ZTE3U01JTFRpbWVDb250YWluZXIxMHVuc2NoZWR1bGVFUE5TXzE0U1ZHU01JTEVsZW1lbnRFCiBf
X1pOSzdXZWJDb3JlMTdSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gxMHJlbmRlck5hbWVFdgog
X19aTjdXZWJDb3JlMjdzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb25FdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN3NlYXJjaGFibGVJbmRleEludHJvZHVjdGlv
bkV2CiBfX1pON1dlYkNvcmUxNFJlbmRlclJ1YnlUZXh0QzFFUE5TXzROb2RlRQogX19aTks3V2Vi
Q29yZTEzUmVuZGVyUnVieVJ1bjExaGFzUnVieVRleHRFdgogX19aTks3V2ViQ29yZTE0UmVuZGVy
UnVieVRleHQxMGlzUnVieVRleHRFdgpAQCAtMTg5NjksNyArMTg4OTAsNiBAQCBfX1pON1dlYkNv
cmU4TG9jYXRpb243c2V0SHJlZkVSS04zV1RGNlN0cmluZ0VQTlNfOURPTVdpbmRvd0VTNl8KIF9f
Wk43V2ViQ29yZTE3U3R5bGVQZW5kaW5nSW1hZ2UxMnJlbW92ZUNsaWVudEVQTlNfMTJSZW5kZXJP
YmplY3RFCiBfX1pON1dlYkNvcmUxNVN1Ym1pdElucHV0VHlwZTEyZGVmYXVsdFZhbHVlRXYKIF9f
Wk43V2ViQ29yZTI0c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWxFdgogX19a
Tks3V2ViQ29yZTExUmVuZGVyVGFibGUyMGZpcnN0TGluZUJveEJhc2VsaW5lRXYKIF9fWk5LN1dl
YkNvcmUxOFJlbmRlclRhYmxlU2VjdGlvbjIwZmlyc3RMaW5lQm94QmFzZWxpbmVFdgogX19aTks3
V2ViQ29yZTE1UmVuZGVyV29yZEJyZWFrMTByZW5kZXJOYW1lRXYKQEAgLTE5NDU1LDcgKzE5Mzc1
LDYgQEAgX19aTjdXZWJDb3JlTDIyVG9wR3JhZGllbnRJbnRlcnBvbGF0ZUVQdlBLZFBkCiBfX1pO
N1dlYkNvcmVMMjVCb3R0b21HcmFkaWVudEludGVycG9sYXRlRVB2UEtkUGQKIF9fWk43V2ViQ29y
ZTE0UmVzZXRJbnB1dFR5cGUxMmRlZmF1bHRWYWx1ZUV2CiBfX1pON1dlYkNvcmUyM3Jlc2V0QnV0
dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5MjNyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbEV2CiBfX1pON1dlYkNvcmUxMlVSTElucHV0VHlw
ZTZjcmVhdGVFUE5TXzE2SFRNTElucHV0RWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxMlVSTElucHV0
VHlwZTE1Zm9ybUNvbnRyb2xUeXBlRXYKIF9fWk43V2ViQ29yZTE0SW5wdXRUeXBlTmFtZXMzdXJs
RXYKQEAgLTI1MjIxLDcgKzI1MTQwLDYgQEAgX19aTjdXZWJDb3JlMTNKU0V2ZW50U291cmNlRDFF
dgogX19aTjdXZWJDb3JlMTFFdmVudFNvdXJjZUQwRXYKIF9fWk5LM0pTQzE0SlNHbG9iYWxPYmpl
Y3QxNGlzR2xvYmFsT2JqZWN0RXYKIF9fWk43V2ViQ29yZTIybXVsdGlwbGVGaWxlVXBsb2FkVGV4
dEVqCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIybXVsdGlwbGVG
aWxlVXBsb2FkVGV4dEVqCiBfX1pON1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDIyY2FsY1ZlcnRpY2FsUHJlZldpZHRoc0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0eWxlMTVz
ZXRCb3hGbGV4R3JvdXBFagogX19aTks3V2ViQ29yZTEzUmVuZGVyTGlzdEJveDEwcmVuZGVyTmFt
ZUV2CkBAIC0yNTQ5OCw3ICsyNTQxNiw2IEBAIF9fWk43V2ViQ29yZTIySFRNTEZvcm1Db250cm9s
RWxlbWVudDMwdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlRXYKIF9fWk5LN1dlYkNvcmUx
NkhUTUxJbnB1dEVsZW1lbnQxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTks3V2ViQ29yZTlJbnB1
dFR5cGUxNnZhbHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3JlMzN2YWxpZGF0aW9uTWVzc2Fn
ZVZhbHVlTWlzc2luZ1RleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dEV2CiBfX1pON1dlYkNvcmUx
N1ZhbGlkYXRpb25NZXNzYWdlNmNyZWF0ZUVQTlNfMjFGb3JtQXNzb2NpYXRlZEVsZW1lbnRFCiBf
X1pON1dlYkNvcmUxN1ZhbGlkYXRpb25NZXNzYWdlMTBzZXRNZXNzYWdlRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlNVRpbWVySU5TXzE3VmFsaWRhdGlvbk1lc3NhZ2VFRTVmaXJlZEV2CkBA
IC0yNTYwOCwxMSArMjU1MjUsOSBAQCBfX1pON1dlYkNvcmU0NHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nRm9yQ2hlY2tib3hUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNFJhZGlvSW5wdXRUeXBl
MTZ2YWx1ZU1pc3NpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRhdGlvbk1lc3NhZ2VWYWx1
ZU1pc3NpbmdGb3JSYWRpb1RleHRFdgogX19aTjdXZWJDb3JlMzZ2YWxpZGF0aW9uTWVzc2FnZVBh
dHRlcm5NaXNtYXRjaFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kzNnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dEV2CiBfX1pOSzdXZWJD
b3JlMTZIVE1MSW5wdXRFbGVtZW50MTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUx
NEVtYWlsSW5wdXRUeXBlMTZ0eXBlTWlzbWF0Y2hUZXh0RXYKIF9fWk43V2ViQ29yZTQxdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzM3ZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4
dEV2CiBfX1pON1dlYkNvcmUzOGpzSFRNTEZpZWxkU2V0RWxlbWVudFZhbGlkYXRpb25NZXNzYWdl
RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43
V2ViQ29yZTM2anNIVE1MS2V5Z2VuRWxlbWVudFZhbGlkYXRpb25NZXNzYWdlRVBOM0pTQzlFeGVj
U3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMzanNI
VE1MRmllbGRTZXRFbGVtZW50V2lsbFZhbGlkYXRlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1Zh
bHVlRVJLTlMwXzEwSWRlbnRpZmllckUKQEAgLTI4NjExLDcgKzI4NTI2LDYgQEAgX19aTjdXZWJD
b3JlMTFGcmFtZUxvYWRlcjIyZmluZEZyYW1lRm9yTmF2aWdhdGlvbkVSS04zV1RGMTJBdG9taWNT
dHJpbmdFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIzdGhyb3dJbnZhbGlkQWNj
ZXNzRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2Jq
ZWN0MzBzZXRTaG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3JFdgogX19aTjdXZWJDb3JlMTdjcmFz
aGVkUGx1Z2luVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTE3Y3Jhc2hlZFBsdWdpblRleHRFdgogX19aTjdXZWJDb3JlMTZTY3JpcHRDb250cm9sbGVyMTFj
cmVhdGVXb3JsZEV2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjBhZGRVc2VyU2NyaXB0VG9Xb3Js
ZEVQTlNfMTVET01XcmFwcGVyV29ybGRFUktOM1dURjZTdHJpbmdFUktOU180S1VSTEVOUzNfMTBQ
YXNzT3duUHRySU5TM182VmVjdG9ySVM0X0xtMEVFRUVFU0RfTlNfMjNVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZUVOU18yNVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dlYkNvcmUxMFVz
ZXJTY3JpcHRDMkVSS04zV1RGNlN0cmluZ0VSS05TXzRLVVJMRU5TMV8xMFBhc3NPd25QdHJJTlMx
XzZWZWN0b3JJUzJfTG0wRUVFRUVTQl9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRU5TXzI1
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lc0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMDcwYWIzZjk2MTkxYjYzMWUwNTAzOTZiYTkyMTMxNzVl
MTg3YjY0OC4uMTczNWE4YjFiYjg3ZDJkMDc3MmMzZDJjYTkyMjcyZGM3NDg2YjRhMCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2NTU4LDE0
ICsyNjU1OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBsYXRmb3JtXERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxEcmFnRGF0YS5jcHAiCiAJCQkJPgogCQkJPC9G
aWxlPgpAQCAtMjY3MDYsMTAgKzI2Njk4LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIK
LQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZv
cm1cTG9jYWxpemVkU3RyaW5ncy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRlYzE3NGZi
MDFjOTFlZTcyMmE5OTFjMWU3NWI3NzdiMGE3ZmY4Y2EuLmVlNThhNzIyMWY2MGIyYmZlYjRkMGJk
MjBiZTk2YWRlMmFmMWIxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxNTQsNyArNTE1NCw2IEBACiAJCUJDNUE4NkI2MEMz
MzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1QTg2QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9N
U2VsZWN0aW9uLmggKi87IH07CiAJCUJDNUM3NjJBMTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9y
bUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNUM3NjI4MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNwcCAqLzsgfTsKIAkJ
QkM1Qzc2MkIxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3
NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0
cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzVFQjVEQjBFODFC
N0VBMDBCMjU5NjUgLyogQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
NUVCNUREMEU4MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURDMEU4MUI4REQwMEIyNTk2NSAv
KiBPdXRsaW5lVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzVFQjVERjBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVC
NURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MzU4LDggKzUzNTcsNiBA
QAogCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBD
RDJEODcgLyogSlNDbGllbnRSZWN0LmggKi87IH07CiAJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4
NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RM
aXN0LmNwcCAqLzsgfTsKIAkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVj
dExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJD
QzM2RUI4MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMzZFQjYx
MzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgKi87IH07
Ci0JCUJDQzM2RUI5MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzM2
RUI3MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsg
fTsKIAkJQkNDNDM4NzgwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M0
Mzg3NzBFODg2Q0M3MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsg
fTsKIAkJQkNDNTczMzUwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzMzMEQ2OTVC
QkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUJDQzU3MzM2MEQ2OTVC
QkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVBy
b2dyZXNzRXZlbnQubW0gKi87IH07CkBAIC0xMjA3Miw3ICsxMjA2OSw2IEBACiAJCUJDNUE4NkI0
MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNET01TZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM1Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1FdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0
Zm9ybUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM1Q0ZDQTgxMUY3OTMzMjAwOTlF
RDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExvY2FsaXphdGlvblN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCb3JkZXJWYWx1ZS5oOyBwYXRoID0gc3R5bGUvQm9yZGVy
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUI1REMwRTgxQjhERDAw
QjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBPdXRsaW5lVmFsdWUuaDsgcGF0aCA9IHN0eWxlL091dGxpbmVWYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUuaDsgcGF0aCA9IHN0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjI5Nyw4ICsxMjI5Myw2IEBACiAJCUJDQzA2NTg0
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNDbGllbnRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlND
bGllbnRSZWN0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVu
dFJlY3RMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzM2RUI2MTM0MkFB
M0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3
IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxl
bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hU
TUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NUHJvZ3Jl
c3NFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzcxLDggKzE5NzY1
LDYgQEAKIAkJCQlGNTg3ODY4NDAyREUzQjg2MDFFQTQxMjIgLyogQ3Vyc29yLmggKi8sCiAJCQkJ
QTU3MzJCMDgxMzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCAqLywKIAkJCQlB
NTczMkIwOTEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLywKLQkJCQlCQ0Mz
NkVCNjEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCAq
LywKLQkJCQlCQ0MzNkVCNzEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmggKi8sCiAJCQkJQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNw
cCAqLywKIAkJCQlBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCAqLywKIAkJ
CQlBN0NGQjNDRjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmNwcCAqLywKQEAgLTE5ODA2
LDcgKzE5Nzk4LDYgQEAKIAkJCQlCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6
ZS5oICovLAogCQkJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgKi8s
CiAJCQkJQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi8sCi0JCQkJQkM1
Q0ZDQTgxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8sCiAJCQkJ
QzA0NkUxQUIxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwICovLAogCQkJ
CTkzNTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8sCiAJCQkJ
QTgyMzlERkUwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovLApAQCAtMjE0ODEsNyAr
MjE0NzIsNiBAQAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3Jr
ZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcg
LyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDA2REZBNjEz
NEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEg
LyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
MzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwMkUxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9kZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMzE2Nyw3ICsyMzE1Nyw2IEBACiAJCQkJMDZFODFFRDcwQUI1RDVFOTAwQzg3ODM3
IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzYz
M0E3MjYxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXph
dGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTczMkIwRDEzNkExNkM0MDA1QzhE
N0MgLyogTG9jYWxpemVkRGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxNDJDNjkxMjNGMTJC
MDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3
QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLApA
QCAtMjQ4ODMsNyArMjQ4NzIsNiBAQAogCQkJCTQxNjJBNDUwMTAxMTQ1QUUwMERGRjNFRCAvKiBE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQTNENThFMTAx
QzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0MzNkVCODEzNDJBQTNGMDA0QkVFRjcgLyog
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNjdF
QkY1MTAyOTYyQkEwMDNEMjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAyQjEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlEU1BL
ZXJuZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkQxMkIwMjY3NjAwQzFBMzU5IC8q
IERlbGF5Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhYTNhNDg2MDQ5NDEyYWEwMTU0M2IyYzJkOGJjZDJiNGY2ZGFjY2U0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw5NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQotI2lmIFVT
RShQTEFURk9STV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUg
IkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVy
TmFtZXMuaD4KLSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KLQotI2lmIFVTRShDRikKLSNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNp
bmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi0vLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3byByZWFzb25z
OgotLy8gIDEpIEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBm
b3JtYXQgc3RyaW5nLgotLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRkIHN5bnRheC4K
LS8vIE5vdGUgdGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNlY29uZCBwYXJh
bWV0ZXIgdG8gdmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQotLy8gdHlwZSBhY2Nv
cmRpbmcgdG8gc2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFyZC4KLXN0YXRp
YyBTdHJpbmcgZm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4uLikKLXsKLSNp
ZiBVU0UoQ0YpCi0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3RhcnQoYXJndW1lbnRz
LCBmb3JtYXQpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZTdHJpbmcoQWRv
cHRDRiwgZm9ybWF0LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygw
LCAwLCBmb3JtYXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7Ci0gICAgdmFfZW5kKGFyZ3Vt
ZW50cyk7Ci0gICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAg
IHZhX2xpc3QgYXJndW1lbnRzOwotICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKLSAg
ICBRU3RyaW5nIHJlc3VsdDsKLSAgICByZXN1bHQudnNwcmludGYoZm9ybWF0LmxhdGluMSgpLmRh
dGEoKSwgYXJndW1lbnRzKTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICByZXR1cm4gcmVz
dWx0OwotI2Vsc2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmb3JtYXQ7Ci0j
ZW5kaWYKLX0KLQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLXN0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3RyaW5n
Rm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKLXsKLSAgICBpZiAob3Jp
Z2luYWwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gb3JpZ2luYWw7Ci0gICAgCi0gICAgLy8g
VHJ1bmNhdGUgdGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3Rl
bmN5IHdpdGggQXBwS2l0LgotICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVy
c0luTG9va3VwTWVudUl0ZW0gPSAyNDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
ZWxsaXBzaXMsICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7Ci0gICAgCi0gICAgU3RyaW5nIHRy
aW1tZWQgPSBvcmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICB1bnNpZ25lZCBudW1iZXJP
ZkNoYXJhY3RlcnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1h
eE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOwotICAgIHJldHVybiBu
dW1iZXJPZkNoYXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQgOiB0cmltbWVk
LmxlZnQobnVtYmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwotfQotI2VuZGlmCi0KLURlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneSYgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzaGFy
ZWQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5LCBkZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksICgpKTsKLSAgICByZXR1cm4gZGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OwotfQotCi1EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneSgpCi17Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkiLCAiYWx0
IHRleHQgZm9yIDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpyZXNldEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1
bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaGFibGVJbmRleEludHJv
ZHVjdGlvbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgaXMgYSBzZWFyY2hh
YmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsCi0gICAgICAgICJ0ZXh0IHRoYXQg
YXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUg
Zm9ybSBvZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRv
bnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9v
c2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBt
dWx0aXBsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRs
ZSBzaG91bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRp
c3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBz
ZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxl
QnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNl
ZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9u
IGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4g
PGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotI2lm
IFBMQVRGT1JNKE1BQykKLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvcHlJ
bWFnZVVua25vd25GaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtu
b3duIiwgIlVua25vd24gZmlsZW5hbWUiKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlua2VkIEZpbGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi0jaWYgUExBVEZPUk0oUVQpCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdl
IEFkZHJlc3MgbWVudSBpdGVtIik7Ci19Ci0jZW5kaWYKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciLCAi
T3BlbiBWaWRlbyBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRp
b0luTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBp
biBOZXcgV2luZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDb3B5IFZpZGVvIEFkZHJlc3MiLCAiQ29weSBWaWRlbyBBZGRyZXNzIExvY2F0aW9u
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJDb3B5IEF1ZGlv
IEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250
cm9scygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENv
bnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQ
bGF5IiwgIk1lZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Ik11dGUiLCAiTWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5l
d1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3
IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnQ29weSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJCYWNrIiwgIkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ1N0b3AoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIiwgIlN0
b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQot
ewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ1Bhc3RlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFz
dGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotI2lmIFBMQVRGT1JNKEdUSykKLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiRGVsZXRlIjsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSW5wdXRN
ZXRob2RzKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiSW5wdXQgTWV0
aG9kcyI7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ1VuaWNvZGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
ICJVbmljb2RlIjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFFUKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdTZWxlY3RBbGwoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJT
ZWxlY3QgQWxsIjsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0
TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
TGVhcm4gU3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
U2VhcmNoV2ViKCkKLXsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlEZWZh
dWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxp
emVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNl
YXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0
ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUgY29udGV4
dCBtZW51IGl0ZW0iKTsKLSNlbmRpZgotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5n
JiBzZWxlY3RlZFN0cmluZykKLXsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8
IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIFVOVVNFRF9QQVJBTShzZWxl
Y3RlZFN0cmluZyk7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAgaW4gRGljdGlv
bmFyeSIsICJMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLSNlbHNl
Ci0jaWYgVVNFKENGKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VsZWN0ZWRDRlN0cmlu
ZyhBZG9wdENGLCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmlu
ZykuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhX
RUJfVUlfU1RSSU5HKCJMb29rIFVwIOKAnCVA4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0
ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOwotI2Vsc2UK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCDigJw8c2VsZWN0aW9uPuKAnSIsICJM
b29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLnJlcGxhY2UoIjxz
ZWxlY3Rpb24+IiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJp
bmcpKTsKLSNlbmRpZgotI2VuZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdJ
Z25vcmVHcmFtbWFyKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIEdyYW1t
YXIiLCAiSWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAi
U3BlbGxpbmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVs
bGluZ1BhbmVsKGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykKLSAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxl
Iik7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIi
LCAibWVudSBpdGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNw
ZWxsaW5nIHdoaWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJX
aXRoU3BlbGxpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFy
IFdpdGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9u
dCIsICJGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0l0
YWxpYygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPdXRs
aW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiUGFyYWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0
aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9u
IGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5n
IGRpcmVjdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250
ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi0jaWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3Rs
aWdodCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJTaG93IEZvbnRzIiwgIlNob3cgZm9udHMgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJ
dGVtVGFnU3R5bGVzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3R5bGVzLi4uIiwg
IlN0eWxlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNw
ZWVjaCIsICJTcGVlY2ggY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmco
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdGFydCBTcGVha2luZyIsICJTdGFydCBz
cGVha2luZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIsICJD
b3JyZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3Vi
c3RpdHV0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJzdGl0dXRp
b25zIiwgIlN1YnN0aXR1dGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJz
dGl0dXRpb25zKGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykgCi0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJTaG93IFN1YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0g
dGl0bGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJTbWFydCBDb3B5L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFzdGUgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJ
dGVtVGFnU21hcnRRdW90ZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBR
dW90ZXMiLCAiU21hcnQgUXVvdGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVz
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERh
c2hlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkKLXsKLSAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3MgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1l
bnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
VGV4dCBSZXBsYWNlbWVudCIsICJUZXh0IFJlcGxhY2VtZW50IGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJU
cmFuc2Zvcm1hdGlvbnMiLCAiVHJhbnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdNYWtlVXBwZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBV
cHBlciBDYXNlIiwgIk1ha2UgVXBwZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtl
TG93ZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBMb3dlciBDYXNl
IiwgIk1ha2UgTG93ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkK
LXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2FwaXRhbGl6ZSIsICJDYXBpdGFsaXplIGNv
bnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0
cmluZykKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiByZXBsYWNlZFN0cmlu
ZzsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiSW5zcGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJl
bCBmb3Igb25seSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhl
IHNlYXJjaCBmaWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVk
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVS
ZWNlbnRTZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQg
U2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJz
IHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRl
ZCBtZW51IHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNsZWFyIFJlY2VudCBTZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNl
YXJjaGVzIG1lbnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFdlYkFyZWFUZXh0KCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiSFRNTCBjb250ZW50IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNj
cmlwdGlvbiBmb3Igd2ViIGFyZWEiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6QVhMaW5rVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpbmsi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlzdE1hcmtlclRleHQoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJsaXN0IG1hcmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIGxpc3QgbWFya2VyIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1h
Z2UgbWFwIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYSGVh
ZGluZ1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGluZ3MiKTsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0
aW9uIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYRGVmaW5p
dGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRl
ZmluaXRpb24iLCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKLX0KLQotI2lmIFBMQVRGT1JNKE1BQykK
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSkKLXsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFB
cHBsaWNhdGlvbkFsZXJ0IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0Iiwg
IkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7Ci0g
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFU
eXBlID09ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMg
YW4gZGlhbG9nLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxp
dHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgY29uc29sZSBsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBQXBwbGljYXRpb25NYXJxdWVlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIm1hcnF1ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
IG1hcnF1ZWUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uU3Rh
dHVzIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIHN0YXR1cyIs
ICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgc3RhdHVzIHVwZGF0
ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25UaW1lciIpCi0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lciIsICJBbiBBUklBIGFjY2Vzc2liaWxp
dHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIHVwZGF0aW5nIHRpbWVyLiIpOyAgICAKLSAgICBpZiAo
YXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEg
ZG9jdW1lbnQuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50QXJ0aWNs
ZSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsgICAgCi0gICAgaWYg
KGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnROb3RlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIm5vdGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
IG5vdGUgaW4gYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9j
dW1lbnRSZWdpb24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24g
aW4gYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtB
cHBsaWNhdGlvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBsaWNhdGlvbiIs
ICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFwcGxpY2F0aW9u
LiIpOyAgICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0Jhbm5lciIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiYW5uZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5
IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGJhbm5lci4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09
ICJBUklBTGFuZG1hcmtDb21wbGVtZW50YXJ5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImNvbXBsZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0
cyBhcyBhIHJlZ2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOyAgICAKLSAgICBp
ZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImNvbnRlbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgY29udGFpbnMgY29udGVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFu
ZG1hcmtNYWluIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1haW4iLCAiQW4gQVJJ
QSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9ydGlvbiBvZiB0aGUgd2Vi
c2l0ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9u
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBh
Y2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVt
ZW50cyBvZiBhIHdlYnNpdGUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRt
YXJrU2VhcmNoIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlYXJjaCIsICJBbiBB
UklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBhIHNlYXJjaCBmZWF0dXJlIG9m
IGEgd2Vic2l0ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVyZmFj
ZVRvb2x0aXAiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJBbiBB
UklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsgICAgCi0g
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQotICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNv
bnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJ
QURvY3VtZW50TWF0aCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1i
b2xzLiIpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLSNlbmRpZgotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdp
bGwgb2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxp
dHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhSYWRpb0J1
dHRvbkFjdGlvblZlcmIoKSAKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0Iiwg
IlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0
dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhlIGFj
dGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFzIHVz
ZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5OjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBv
Y2N1ciB3aGVuIGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vz
c2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhV
bmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJjaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBh
biB1bmNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTWVudUxpc3RB
Y3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAic2VsZWN0
IjsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhNZW51TGlzdFBv
cHVwQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInNl
bGVjdCI7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlua0Fj
dGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBh
cyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJNaXNzaW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVn
aW4gaXMgbWlzc2luZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
OjpjcmFzaGVkUGx1Z2luVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsdWct
aW4gRmFpbHVyZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3QgcHJvY2Vz
cyBoYXMgY3Jhc2hlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
OjptdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCi17Ci0gICAg
cmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJM
YWJlbCB0byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1
cGxvYWQgY29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVz
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dW5rbm93bkZpbGVT
aXplVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93
biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi0jaWYgUExBVEZP
Uk0oV0lOKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp1cGxvYWRGaWxl
VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInVwbG9hZCI7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmFsbEZpbGVzVGV4dCgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gImFsbCBmaWxlcyI7Ci19Ci0KLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5OjpidWlsdEluUERGUGx1Z2luTmFtZSgpCi17Ci0gICAgLy8gQWxzbyBleHBvc2VkIHRv
IERPTS4KLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0IGJ1aWx0LWluIFBERiIsICJQ
c2V1ZG8gcGx1Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGlu
IFNhZmFyaS4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6cGRm
RG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKQotewotICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00u
Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBvcnRhYmxlIERvY3VtZW50IEZvcm1hdCIsICJE
ZXNjcmlwdGlvbiBvZiB0aGUgKG9ubHkpIHR5cGUgc3VwcG9ydGVkIGJ5IFBERiBwc2V1ZG8gcGx1
Zy1pbi4gVmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtNTEy
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUg
aXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtMTAyNCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIjEwMjQgKE1lZGl1bSBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZv
ciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiMjA0OCAoSGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVw
IG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6a2V5Z2Vu
S2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBob3N0Q0ZTdHJpbmcoQWRvcHRDRiwgaG9zdC5jcmVhdGVDRlN0cmluZygpKTsK
LSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIktleSBmcm9t
ICVAIiwgIk5hbWUgb2Yga2V5Y2hhaW4ga2V5IGdlbmVyYXRlZCBieSB0aGUgS0VZR0VOIHRhZyIp
LCBob3N0Q0ZTdHJpbmcuZ2V0KCkpOwotfQotCi0jaWYgUExBVEZPUk0oSU9TKQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90
IGNvdW50KQotewotICAgIHN3aXRjaCAoY291bnQpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVj
dCBtdWx0aXBsZT4gd2hlbiBubyA8b3B0aW9uPiBpdGVtcyBhcmUgc2VsZWN0ZWQgKGlPUyBvbmx5
KSIpOwotICAgIGNhc2UgMToKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEgSXRlbSIs
ICJQcmVzZW50IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gYSBzaW5nbGUgPG9w
dGlvbj4gaXMgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJl
dHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJXp1IEl0ZW1zIiwgIlBy
ZXNlbnQgdGhlIG51bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9uPiBpdGVtcyBpbiBhIDxzZWxlY3Qg
bXVsdGlwbGU+IGVsZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3VudCk7Ci0gICAgfQotfQotI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFt
ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSNpZiBVU0UoQ0YpCi0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZT
dHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgUmV0YWluUHRy
PENGTG9jYWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsKLSAg
ICBSZXRhaW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBDRk51
bWJlckZvcm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRlckRl
Y2ltYWxTdHlsZSkpOwotCi0gICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOwotICAgIFJl
dGFpblB0cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NG
TnVtYmVySW50VHlwZSwgJndpZHRoSW50KSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB3
aWR0aFN0cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1i
ZXIoMCwgZm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOwotCi0gICAgaW50IGhlaWdodElu
dCA9IHNpemUuaGVpZ2h0KCk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQoQWRv
cHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkpOwot
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVy
Rm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhlaWdo
dC5nZXQoKSkpOwotCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RS
SU5HKCIlQCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGlt
YWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJp
bmcuZ2V0KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOwotI2Vsc2UK
LSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmls
ZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmlu
ZyhXRUJfVUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBz
dGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZp
bGVuYW1lQ0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0jZW5k
aWYKLSNlbHNlCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5H
KCI8ZmlsZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxv
bmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53aWR0
aCgpLCBzaXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwotI2Vu
ZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om1lZGlhRWxlbWVu
dExvYWRpbmdTdGF0ZVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5n
Li4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMg
bG9hZGluZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptZWRp
YUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3
aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25z
dCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIi
KTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1l
ID09ICJNdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
dW5tdXRlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9m
ZiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgcGxheSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciBwYXVzZSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBy
b2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAi
U2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xp
ZGVyIHRodW1iIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUg
dGh1bWIiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOwotICAgIGlmIChuYW1l
ID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInJldHVybiB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHJldHVybiB0byByZWFsIHRpbWUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJl
bnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRp
bWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlz
cGxheSIpOwotICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJv
bGUgZGVzY3JpcHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKLSAgICBpZiAobmFt
ZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0
dXMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsK
LSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgZW50ZXIgZnVsbHNjcmVlbiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0Zvcndh
cmRCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIp
OwotICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBmYXN0IHJldmVyc2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRD
YXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3Nl
ZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xv
c2VkIGNhcHRpb25zIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2Fw
dGlvbnMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBj
YXB0aW9ucyBidXR0b24iKTsKLQotICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250
YWluZXIgc2hvdWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFy
Y2h5LgotICAgIGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKLSAgICAgICAgcmV0dXJuIFN0
cmluZygpOwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChu
YW1lID09ICJBdWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXVk
aW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsK
LSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInZpZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250
cm9sbGVyIik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygibXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIG11dGUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCi0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciB1biBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJQbGF5QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJlZ2luIHBsYXli
YWNrIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRvbiIpOwotICAgIGlm
IChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJw
YXVzZSBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGF1c2UgYnV0dG9u
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJtb3ZpZSB0aW1lIHNjcnViYmVyIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0
aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7Ci0gICAgaWYg
KG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJz
ZWVrIG1vdmllIGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
anVtcCBiYWNrIDMwIHNlY29uZHMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRv
UmVhbHRpbWVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHN0
cmVhbWluZyBtb3ZpZSB0byByZWFsIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IHJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOwotICAgIGlmIChu
YW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiY3VycmVudCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIGVsYXBzZWQgdGltZSBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1h
aW5pbmdEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm51bWJlciBvZiBz
ZWNvbmRzIG9mIG1vdmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
cmVtYWluaW5nIHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5
IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgc3RhdHVzIiwg
ImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlzcGxheSIpOwotICAg
IGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJzZWVrIHF1aWNrbHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFz
dCByZXdpbmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBmb3J3YXJkIiwgImFj
Y2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7Ci0gICAgaWYg
KG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiUGxheSBtb3ZpZSBpbiBmdWxsc2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIGVudGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dD
bG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGFy
dCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkhpZGVD
bG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdG9w
IGRpc3BsYXlpbmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsK
LSAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
aW5kZWZpbml0ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmlu
aXRlIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOwotCi0gICAgaW50IHNlY29uZHMgPSBz
dGF0aWNfY2FzdDxpbnQ+KGZhYnNmKHRpbWUpKTsgCi0gICAgaW50IGRheXMgPSBzZWNvbmRzIC8g
KDYwICogNjAgKiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKLSAg
ICBpbnQgbWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAlPSA2MDsK
LQotICAgIGlmIChkYXlzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdF
Ql9VSV9TVFJJTkcoIiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29u
ZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2
YWx1ZSA+PSAxIGRheSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7Ci0gICAgaWYg
KGhvdXJzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJ
TkcoIiUxJGQgaG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMi
KSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIGlmIChtaW51dGVzKQotICAgICAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgbWludXRlcyAl
MiRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xs
ZXIgdGltZSB2YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIHJl
dHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBzZWNvbmRzIiwg
ImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUg
PCA2MCBzZWNvbmRzIiksIHNlY29uZHMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBm
b3IgcmVxdWlyZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0eXBlIG1p
c21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRo
IGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9u
IG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQg
dmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9y
bSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93
ZWQgbGVuZ3RoIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygicmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQg
Zm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBv
dmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0
aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKLX0KLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVj
dGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhMjJlOWRmNTE2OTk2YTgzNzdhZWQ0YzY4OTQzMTVkZDliYWYx
ZWFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyAvZGV2
L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0jZGVmaW5lIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneV9oCi0KLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2luY2x1ZGUgIkxvY2Fs
aXphdGlvblN0cmF0ZWd5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5IDog
cHVibGljIExvY2FsaXphdGlvblN0cmF0ZWd5IHsKLXB1YmxpYzoKLSAgICBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3koKTsKLQotICAgIHN0YXRpYyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kmIHNoYXJlZCgpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmls
ZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9u
Tm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0Zp
bGVzU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3Vt
bWFyeVRleHQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUlt
YWdlVW5rbm93bkZpbGVMYWJlbCgpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRv
dygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzaygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9D
bGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1h
Z2VJbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rv
d25sb2FkSW1hZ2VUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotI2lmIFBMQVRGT1JNKFFUKQotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Ci0jZW5k
aWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dp
bmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q3V0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKLSNp
ZiBQTEFURk9STShHVEspCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVs
ZXRlKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2Rz
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpOwotI2Vu
ZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRTdHJp
bmcpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hv
dyk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3Jh
bW1hcldpdGhTcGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0ZvbnRNZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQm9sZCgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCk7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhib29sIHNob3cpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcygpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsK
LSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVt
ZW50KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5O
ZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVk
aW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgQVhXZWJBcmVhVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTGlu
a1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWEhlYWRp
bmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCk7Ci0j
aWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBB
WEJ1dHRvbkFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0
aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOwotICAgIHZp
cnR1YWwgU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWE1l
bnVMaXN0UG9wdXBBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5rQWN0aW9u
VmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwotICAgIHZpcnR1YWwg
U3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmly
dHVhbCBTdHJpbmcgdXBsb2FkRmlsZVRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBhbGxGaWxl
c1RleHQoKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBi
dWlsdEluUERGUGx1Z2luTmFtZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHBkZkRvY3VtZW50VHlw
ZURlc2NyaXB0aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTEwMjQoKTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5LZXlj
aGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAg
IHZpcnR1YWwgU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1zKHNpemVfdCk7Ci0jZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0
cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3Qg
U3RyaW5nJik7Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dEhlbHBUZXh0KGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1l
ZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2VuZGlmIC8vIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemF0aW9uU3RyYXRlZ3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZhYjc2
NGI4NmFlZWNmZGU4MDAzOGY1ZDJmMzI5MTdmNTI4ZjlkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
YXRpb25TdHJhdGVneS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMb2NhbGl6YXRp
b25TdHJhdGVneV9oCi0jZGVmaW5lIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLQotI2lmIFVTRShQ
TEFURk9STV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnRTaXplOwotCi1jbGFzcyBMb2NhbGl6YXRpb25TdHJh
dGVneSB7Ci1wdWJsaWM6ICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIGlucHV0RWxlbWVudEFsdFRl
eHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSA9IDA7Ci0KLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVM
YWJlbCgpID0gMDsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2so
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0Ns
aXBib2FyZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVu
SW1hZ2VJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkgPSAwOwotI2lmIFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpID0gMDsKLSNlbmRpZgot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnUGFzdGUoKSA9IDA7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlbGV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnVW5pY29kZSgpID0gMDsKLSNlbmRpZgotI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSA9IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3Qg
U3RyaW5nJiBzZWxlY3RlZFN0cmluZykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5MaW5rKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU3BlbGxpbmdNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250
TWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVu
dSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGly
ZWN0aW9uKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRU
b1JpZ2h0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0
VG9MZWZ0KCkgPSAwOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJv
b2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0
Q29weVBhc3RlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0UXVvdGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0RGFzaGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0TGlua3MoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4
dFJlcGxhY2VtZW50KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RyYW5zZm9ybWF0aW9uc01lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NhcGl0YWxpemUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKSA9IDA7
Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9J
bk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuQXVkaW9Jbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
TXV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0
RWxlbWVudCgpID0gMDsKLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLQotICAgIHZp
cnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLQot
ICAgIHZpcnR1YWwgU3RyaW5nIEFYV2ViQXJlYVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhMaW5rVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0
KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIEFYSGVhZGluZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhE
ZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5p
dGlvbkxpc3REZWZpbml0aW9uVGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2
aXJ0dWFsIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5
cGUpID0gMDsKLSNlbmRpZgotICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIEFYQnV0dG9uQWN0aW9u
VmVyYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKSA9IDA7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAg
IHZpcnR1YWwgU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIEFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhMaW5rQWN0aW9uVmVyYigpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQ
bHVnaW5UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQg
bnVtYmVyT2ZGaWxlcykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRl
eHQoKSA9IDA7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJpbmcgdXBsb2Fk
RmlsZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWxsRmlsZXNUZXh0KCkgPSAwOwot
I2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgYnVpbHRJblBE
RlBsdWdpbk5hbWUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcGRmRG9jdW1lbnRUeXBlRGVz
Y3JpcHRpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGtleWdlbk1lbnVJdGVtMjA0OCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkgPSAwOwotI2VuZGlm
Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IEludFNpemUmIHNpemUpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxl
bWVudExvYWRpbmdTdGF0ZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVt
ZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3Qg
U3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2Ny
aXB0aW9uKGZsb2F0KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVZhbHVlTWlzc2luZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgPSAwOwotCi1wcm90
ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+TG9jYWxpemF0aW9uU3RyYXRlZ3koKQotICAgIHsKLSAgICB9
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1f
U1RSQVRFR0lFUykKLQotI2VuZGlmIC8vIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMTQwOWJiZjMxYjFh
YjJlM2I3NGVlMzQwNTdiNjRlN2U4MGJjZGUwYy4uMDM4M2RlNmY3MmExYTJjNDQ2NDYxODFkMmFm
ZTljMzQ4NjYxOTRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNiwgMjAwOSwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtMjcsNzExICsyNyw5MzEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAKLSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaWYgVVNFKENGKQorI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5o
PgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CisKKyNpZiBQTEFURk9S
TShNQUMpCisjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQorLy8gV2Ug
Y2FuJ3QgdXNlIFN0cmluZzo6Zm9ybWF0IGZvciB0d28gcmVhc29uczoKKy8vICAxKSBJdCBkb2Vz
bid0IGhhbmRsZSBub24tQVNDSUkgY2hhcmFjdGVycyBpbiB0aGUgZm9ybWF0IHN0cmluZy4KKy8v
ICAyKSBJdCBkb2Vzbid0IGhhbmRsZSB0aGUgJTIkZCBzeW50YXguCisvLyBOb3RlIHRoYXQgYmVj
YXVzZSB8Zm9ybWF0fCBpcyB1c2VkIGFzIHRoZSBzZWNvbmQgcGFyYW1ldGVyIHRvIHZhX3N0YXJ0
LCBpdCBjYW5ub3QgYmUgYSByZWZlcmVuY2UKKy8vIHR5cGUgYWNjb3JkaW5nIHRvIHNlY3Rpb24g
MTguNy8zIG9mIHRoZSBDKysgTjE5MDUgc3RhbmRhcmQuCitzdGF0aWMgU3RyaW5nIGZvcm1hdExv
Y2FsaXplZFN0cmluZyhTdHJpbmcgZm9ybWF0LCAuLi4pCit7CisjaWYgVVNFKENGKQorICAgIHZh
X2xpc3QgYXJndW1lbnRzOworICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKKyAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZvcm1hdENGU3RyaW5nKEFkb3B0Q0YsIGZvcm1hdC5jcmVh
dGVDRlN0cmluZygpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdChBZG9wdENG
LCBDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1bWVudHMoMCwgMCwgZm9ybWF0Q0ZTdHJp
bmcuZ2V0KCksIGFyZ3VtZW50cykpOworICAgIHZhX2VuZChhcmd1bWVudHMpOworICAgIHJldHVy
biByZXN1bHQuZ2V0KCk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZvcm1hdDsKKyNlbmRpZgorfQogCi1zdGF0aWMgaW5saW5lIExvY2FsaXphdGlvblN0cmF0ZWd5
KiBsb2NhbGl6YXRpb25TdHJhdGVneSgpCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorc3RhdGljIFN0cmluZyB0
cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShjb25zdCBTdHJpbmcmIG9yaWdpbmFsKQog
ewotICAgIGlmIChoYXNQbGF0Zm9ybVN0cmF0ZWdpZXMoKSkKLSAgICAgICAgcmV0dXJuIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpOworICAgIGlmIChvcmlnaW5h
bC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBvcmlnaW5hbDsKIAotICAgIHJldHVybiAmRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzaGFyZWQoKTsKKyAgICAvLyBUcnVuY2F0ZSB0aGUg
c3RyaW5nIGlmIGl0J3MgdG9vIGxvbmcuIFRoaXMgaXMgaW4gY29uc2lzdGVuY3kgd2l0aCBBcHBL
aXQuCisgICAgdW5zaWduZWQgbWF4TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBNZW51
SXRlbSA9IDI0OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBlbGxpcHNpcywgKCZo
b3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKworICAgIFN0cmluZyB0cmltbWVkID0gb3JpZ2luYWwu
c3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFyYWN0ZXJzID0gbnVt
Q2hhcmFjdGVyc0luR3JhcGhlbWVDbHVzdGVycyh0cmltbWVkLCBtYXhOdW1iZXJPZkdyYXBoZW1l
Q2x1c3RlcnNJbkxvb2t1cE1lbnVJdGVtKTsKKyAgICByZXR1cm4gbnVtYmVyT2ZDaGFyYWN0ZXJz
ID09IHRyaW1tZWQubGVuZ3RoKCkgPyB0cmltbWVkIDogdHJpbW1lZC5sZWZ0KG51bWJlck9mQ2hh
cmFjdGVycykgKyBlbGxpcHNpczsKIH0KKyNlbmRpZgogCiBTdHJpbmcgaW5wdXRFbGVtZW50QWx0
VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmlucHV0RWxlbWVu
dEFsdFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlN1Ym1pdCIsICJTdWJt
aXQgKGlucHV0IGVsZW1lbnQpIiwgImFsdCB0ZXh0IGZvciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGgg
bm8gYWx0LCB0aXRsZSwgb3IgdmFsdWUiKTsKIH0KIAogU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVs
dExhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+cmVzZXRCdXR0
b25EZWZhdWx0TGFiZWwoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUmVzZXQiLCAiZGVm
YXVsdCBsYWJlbCBmb3IgUmVzZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKIH0K
IAogU3RyaW5nIHNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbigpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIg
c2VhcmNoIGtleXdvcmRzOiAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0IHRoYXQg
YXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUg
Zm9ybSBvZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOwogfQogCiBTdHJpbmcgc3VibWl0QnV0dG9u
RGVmYXVsdExhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+c3Vi
bWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1Ym1p
dCIsICJkZWZhdWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFn
ZXMiKTsKIH0KIAogU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5maWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlIiwgInRpdGxlIGZvciBhIHNp
bmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIpOwogfQogCiBTdHJp
bmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2hvb3NlIEZpbGVzIiwgInRpdGxlIGZvciBh
IG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zLiBUaGlzIHRp
dGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4iKTsKIH0KIAogU3RyaW5nIGZpbGVC
dXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBi
dXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3RlZCIpOwogfQog
CiBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8g
ZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBh
cmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNl
bGVjdGVkIik7CiB9CiAKIFN0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4
dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEZXRhaWxzIiwgInRleHQgdG8gZGlzcGxh
eSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1tYXJ5PiBjaGlsZCIpOwogfQog
CiAjaWYgUExBVEZPUk0oTUFDKQogU3RyaW5nIGNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb3B5SW1hZ2VVbmtub3duRmls
ZUxhYmVsKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInVua25vd24iLCAiVW5rbm93biBm
aWxlbmFtZSIpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dp
bmRvdygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIExpbmsgaW4gTmV3IFdpbmRv
dyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlz
aygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEb3dubG9hZCBMaW5rZWQgRmlsZSIsICJE
b3dubG9hZCBMaW5rZWQgRmlsZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSBMaW5rIiwgIkNvcHkgTGluayBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdl
SW5OZXdXaW5kb3coKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2lu
ZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdE
b3dubG9hZEltYWdlVG9EaXNrKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJDb3B5IEltYWdlIiwgIkNvcHkgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAotI2lm
IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLVN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkKCk7Ci19Ci0jZW5kaWYKLQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gRnJhbWUgaW4gTmV3
IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ29weSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ0NvcHkoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29weSIsICJDb3B5
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0Jh
Y2soKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdHb0JhY2soKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQmFjayIsICJCYWNrIGNv
bnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0Zvcndh
cmQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdHb0ZvcndhcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9yd2FyZCIsICJG
b3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdG9wKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnU3RvcCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIiwgIlN0b3Ag
Y29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9h
ZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRl
bVRhZ1JlbG9hZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWxvYWQiLCAiUmVsb2Fk
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdDdXQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ3V0IiwgIkN1dCBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXN0ZSIsICJQYXN0ZSBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oUVQpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U2VsZWN0QWxsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gIlNlbGVjdCBBbGwiOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdO
b0d1ZXNzZXNGb3VuZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8gR3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJZ25v
cmVTcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJJZ25vcmUgU3BlbGxpbmci
LCAiSWdub3JlIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJMZWFybiBTcGVsbGluZyIsICJMZWFybiBTcGVsbGluZyBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiU2VhcmNoIGluIFNwb3RsaWdodCIsICJTZWFyY2ggaW4gU3BvdGxp
Z2h0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAjZW5kaWYKIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaFdlYigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpOworI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQorICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VhcmNoUHJvdmlkZXJOYW1lKEFk
b3B0Q0YsIHdrQ29weURlZmF1bHRTZWFyY2hQcm92aWRlckRpc3BsYXlOYW1lKCkpOworICAgIHJl
dHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiU2VhcmNoIHdpdGggJUAi
LCAiU2VhcmNoIHdpdGggc2VhcmNoIHByb3ZpZGVyIGNvbnRleHQgbWVudSBpdGVtIHdpdGggcHJv
dmlkZXIgbmFtZSBpbnNlcnRlZCIpLCBzZWFyY2hQcm92aWRlck5hbWUuZ2V0KCkpOworI2Vsc2UK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2VhcmNoIHdpdGggR29vZ2xlIiwgIlNlYXJjaCB3
aXRoIEdvb2dsZSBjb250ZXh0IG1lbnUgaXRlbSIpOworI2VuZGlmCiB9CiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3RlZFN0
cmluZykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KHNlbGVjdGVkU3RyaW5nKTsKKyNpZiBkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
ICAgIFVOVVNFRF9QQVJBTShzZWxlY3RlZFN0cmluZyk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIsICJMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4
dCBtZW51IGl0ZW0iKTsKKyNlbHNlCisjaWYgVVNFKENGKQorICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gc2VsZWN0ZWRDRlN0cmluZyhBZG9wdENGLCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBN
ZW51SXRlbShzZWxlY3RlZFN0cmluZykuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJuIGZv
cm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJMb29rIFVwIOKAnCVA4oCdIiwgIkxv
b2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZT
dHJpbmcuZ2V0KCkpOworI2Vsc2UKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCDi
gJw8c2VsZWN0aW9uPuKAnSIsICJMb29rIFVwIGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0
ZWQgd29yZCIpLnJlcGxhY2UoIjxzZWxlY3Rpb24+IiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3Vw
TWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpKTsKKyNlbmRpZgorI2VuZGlmCiB9CiAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIk9wZW4gTGluayIsICJPcGVuIExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFy
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIklnbm9yZSBHcmFtbWFyIiwgIklnbm9yZSBH
cmFtbWFyIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTcGVsbGluZ01lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAiU3BlbGxpbmcgYW5kIEdyYW1tYXIgY29udGV4dCBz
dWItbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxp
bmdQYW5lbChib29sIHNob3cpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKHNob3cpOworICAgIGlmIChzaG93
KQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2hvdyBTcGVsbGluZyBhbmQgR3JhbW1h
ciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSGlkZSBT
cGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKIH0KIAogU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIERvY3VtZW50IE5vdyIsICJDaGVjayBzcGVsbGluZyBj
b250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZ1doaWxlVHlwaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyIsICJDaGVjayBz
cGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldp
dGhTcGVsbGluZygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFyIFdp
dGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkZvbnQiLCAiRm9udCBjb250ZXh0IHN1Yi1t
ZW51IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTaG93Rm9udHMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
U2hvdyBGb250cyIsICJTaG93IGZvbnRzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAjZW5kaWYK
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdCb2xkKCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkJvbGQiLCAiQm9sZCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpOworICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKIHsKLSAgICByZXR1
cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPdXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdHlsZXMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdTdHlsZXMoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3R5bGVzLi4u
IiwgIlN0eWxlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2hvd0NvbG9ycygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnMoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAog
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51KCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWVjaCIsICJTcGVlY2ggY29udGV4dCBzdWItbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5nKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3Rh
cnRTcGVha2luZygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdGFydCBTcGVha2luZyIs
ICJTdGFydCBzcGVha2luZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU3RvcFNwZWFraW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3RvcFNwZWFraW5nKCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlN0b3AgU3BlYWtpbmciLCAiU3RvcCBzcGVha2luZyBjb250ZXh0IG1lbnUg
aXRlbSIpOwogfQogI2VuZGlmCiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGly
ZWN0aW9uTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlBhcmFncmFwaCBEaXJlY3Rpb24iLCAiUGFyYWdyYXBoIGRpcmVjdGlvbiBjb250ZXh0
IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJl
Y3Rpb25NZW51KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiU2VsZWN0aW9uIERpcmVjdGlvbiIsICJTZWxlY3Rpb24gZGlyZWN0aW9uIGNvbnRleHQgc3Vi
LW1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVj
dGlvbigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGVm
YXVsdCIsICJEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdo
dCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmln
aHRUb0xlZnQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSaWdo
dCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExlZnQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogI2lm
IFBMQVRGT1JNKE1BQykKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcnJlY3RTcGVsbGlu
Z0F1dG9tYXRpY2FsbHkoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIsICJDb3Jy
ZWN0IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01l
bnUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3Vic3RpdHV0aW9ucyIsICJTdWJzdGl0
dXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoYm9vbCBzaG93KQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhzaG93
KTsKKyAgICBpZiAoc2hvdykKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNob3cgU3Vi
c3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUiKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiSGlkZSBTdWJzdGl0dXRpb25zIiwgIm1lbnUgaXRlbSB0aXRsZSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGUoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTbWFydENvcHlQYXN0ZSgpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBDb3B5L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFz
dGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0UXVvdGVzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21h
cnQgUXVvdGVzIiwgIlNtYXJ0IFF1b3RlcyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcygpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBEYXNoZXMiLCAiU21hcnQgRGFzaGVzIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
U21hcnRMaW5rcygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBMaW5rcyIsICJT
bWFydCBMaW5rcyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnVGV4dFJlcGxhY2VtZW50KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlRleHQgUmVwbGFjZW1lbnQiLCAiVGV4dCBSZXBsYWNlbWVudCBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVHJhbnNmb3JtYXRp
b25zTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiVHJhbnNmb3JtYXRpb25zIiwgIlRyYW5zZm9ybWF0aW9ucyBjb250ZXh0IHN1Yi1tZW51IGl0
ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2UoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNYWtl
VXBwZXJDYXNlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk1ha2UgVXBwZXIgQ2FzZSIs
ICJNYWtlIFVwcGVyIENhc2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJDYXNlKCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIk1ha2UgTG93ZXIgQ2FzZSIsICJNYWtlIExvd2VyIENhc2UgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdDYXBpdGFsaXplKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNhcGl0YWxpemUiLCAi
Q2FwaXRhbGl6ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNr
KHJlcGxhY2VkU3RyaW5nKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiByZXBs
YWNlZFN0cmluZzsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3co
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93Iiwg
Ik9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5l
d1dpbmRvdygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIEF1ZGlvIGluIE5ldyBX
aW5kb3ciLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ29w
eSBWaWRlbyBBZGRyZXNzIiwgIkNvcHkgVmlkZW8gQWRkcmVzcyBMb2NhdGlvbiBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1Rv
Q2xpcGJvYXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJDb3B5IEF1ZGlvIEFkZHJlc3MgTG9jYXRp
b24gY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENvbnRyb2xzIGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUxvb3AoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vcCIsICJNZWRpYSBM
b29wIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdF
bnRlclZpZGVvRnVsbHNjcmVlbigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVl
biBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQbGF5KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsYXkiLCAi
TWVkaWEgUGxheSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQYXVzZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiUGF1c2UiLCAiTWVkaWEgUGF1c2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJNdXRlIiwgIk1lZGlhIE11dGUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
ICAgICAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RF
bGVtZW50KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkluc3BlY3QgRWxlbWVudCIsICJJ
bnNwZWN0IEVsZW1lbnQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShDT05URVhUX01FTlVTKQogCiBTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+c2VhcmNoTWVudU5vUmVj
ZW50U2VhcmNoZXNUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIHJlY2VudCBz
ZWFyY2hlcyIsICJMYWJlbCBmb3Igb25seSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4g
Y2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZl
IGJlZW4gcGVyZm9ybWVkIik7CiB9CiAKLVN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNU
ZXh0ICgpCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQg
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlY2VudCBTZWFyY2hlcyIsICJsYWJlbCBm
b3IgZmlyc3QgaXRlbSBpbiB0aGUgbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0
aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB1c2VkIGFzIGVtYmVkZGVkIG1lbnUgdGl0bGUiKTsKIH0K
IAogU3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVz
VGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDbGVhciBSZWNlbnQgU2VhcmNoZXMi
LCAibWVudSBpdGVtIGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3Mg
Y29udGVudHMiKTsKIH0KIAogU3RyaW5nIEFYV2ViQXJlYVRleHQoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWFdlYkFyZWFUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkhUTUwgY29udGVudCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIHdlYiBhcmVhIik7CiB9CiAKIFN0cmluZyBBWExpbmtUZXh0KCkKIHsKLSAgICByZXR1cm4g
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhMaW5rVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJsaW5rIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbGluayIp
OwogfQogCiBTdHJpbmcgQVhMaXN0TWFya2VyVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPkFYTGlzdE1hcmtlclRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibGlzdCBtYXJrZXIiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBs
aXN0IG1hcmtlciIpOwogfQogCiBTdHJpbmcgQVhJbWFnZU1hcFRleHQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWEltYWdlTWFwVGV4dCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJpbWFnZSBtYXAiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBpbWFnZSBtYXAiKTsKIH0KIAogU3RyaW5nIEFYSGVhZGluZ1RleHQoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWEhlYWRpbmdUZXh0KCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImhlYWRpbmciLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBoZWFkaW5ncyIpOwogfQogCiBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhEZWZpbml0aW9uTGlzdFRl
cm1UZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRlcm0iLCAidGVybSB3b3JkIG9m
IGEgZGVmaW5pdGlvbiIpOwogfQogCiBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25U
ZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhEZWZpbml0aW9u
TGlzdERlZmluaXRpb25UZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRlZmluaXRp
b24iLCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmlu
ZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQVJJQUNvbnRlbnRHcm91cFRleHQoYXJp
YVR5cGUpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uQWxlcnQiKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5
IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFS
SUFBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImFsZXJ0IGRpYWxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFz
IGFuIGFsZXJ0IGRpYWxvZy4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlv
bkRpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkaWFsb2ciLCAiQW4gQVJJ
QSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBkaWFsb2cuIik7CisgICAgaWYg
KGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25Mb2ciKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygibG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMg
YSBjb25zb2xlIGxvZy4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbk1h
cnF1ZWUiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibWFycXVlZSIsICJBbiBBUklB
IGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgbWFycXVlZS4iKTsKKyAgICBpZiAo
YXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvblN0YXR1cyIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJhcHBsaWNhdGlvbiBzdGF0dXMiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdy
b3VwIHRoYXQgYWN0cyBhcyBhIHN0YXR1cyB1cGRhdGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBQXBwbGljYXRpb25UaW1lciIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0
aW1lciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIHVwZGF0
aW5nIHRpbWVyLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50IikKKyAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRvY3VtZW50IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0g
IkFSSUFEb2N1bWVudEFydGljbGUiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXJ0
aWNsZSIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFydGlj
bGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnROb3RlIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5vdGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3Vw
IHRoYXQgYWN0cyBhcyBhIG5vdGUgaW4gYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUg
PT0gIkFSSUFEb2N1bWVudFJlZ2lvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJy
ZWdpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGRpc3Rp
bmN0IHJlZ2lvbiBpbiBhIGRvY3VtZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxh
bmRtYXJrQXBwbGljYXRpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXBwbGlj
YXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhcHBs
aWNhdGlvbi4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0Jhbm5lciIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJiYW5uZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGJhbm5lci4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0g
IkFSSUFMYW5kbWFya0NvbXBsZW1lbnRhcnkiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiY29tcGxlbWVudGFyeSIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3Rz
IGFzIGEgcmVnaW9uIG9mIGNvbXBsZW1lbnRhcnkgaW5mb3JtYXRpb24uIik7CisgICAgaWYgKGFy
aWFUeXBlID09ICJBUklBTGFuZG1hcmtDb250ZW50SW5mbyIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJjb250ZW50IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNv
bnRhaW5zIGNvbnRlbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtNYWlu
IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1haW4iLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9ydGlvbiBvZiB0aGUgd2Vic2l0ZS4iKTsK
KyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya05hdmlnYXRpb24iKQorICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygibmF2aWdhdGlvbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkg
Z3JvdXAgdGhhdCBjb250YWlucyB0aGUgbWFpbiBuYXZpZ2F0aW9uIGVsZW1lbnRzIG9mIGEgd2Vi
c2l0ZS4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya1NlYXJjaCIpCisgICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWFyY2giLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5
IGdyb3VwIHRoYXQgY29udGFpbnMgYSBzZWFyY2ggZmVhdHVyZSBvZiBhIHdlYnNpdGUuIik7Cisg
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVyZmFjZVRvb2x0aXAiKQorICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3Jv
dXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFU
YWJQYW5lbCIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0YWIgcGFuZWwiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIGNvbnRlbnQgb2YgYSB0
YWIuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRNYXRoIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hdGgiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3Vw
IHRoYXQgY29udGFpbnMgbWF0aGVtYXRpY2FsIHN5bWJvbHMuIik7CisgICAgcmV0dXJuIFN0cmlu
ZygpOwogfQogI2VuZGlmCiAgICAgCiBTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhCdXR0b25BY3Rpb25WZXJiKCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInByZXNzIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9u
IHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgYnV0dG9uIGlzIHByZXNzZWQsIGFzIHVzZWQgYnkgYWNj
ZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWFJhZGlvQnV0dG9uQWN0aW9uVmVy
YigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWxlY3QiLCAiVmVyYiBzdGF0aW5nIHRo
ZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSByYWRpbyBidXR0b24gaXMgY2xpY2tlZCwg
YXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWFRleHRGaWVsZEFjdGlv
blZlcmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWFRleHRGaWVs
ZEFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWN0aXZhdGUiLCAiVmVy
YiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSB0ZXh0IGZpZWxkIGlz
IHNlbGVjdGVkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYQ2hl
Y2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPkFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1
ciB3aGVuIGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2li
aWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhVbmNoZWNrZWRDaGVja0JveEFj
dGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY2hlY2siLCAiVmVyYiBzdGF0
aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYW4gdW5jaGVja2VkIGNoZWNrYm94
IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhM
aW5rQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFY
TGlua0FjdGlvblZlcmIoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygianVtcCIsICJWZXJi
IHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGxpbmsgaXMgY2xpY2tl
ZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWE1lbnVMaXN0UG9w
dXBBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhN
ZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuICJzZWxlY3QiOwogfQogCiBTdHJpbmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWE1lbnVMaXN0QWN0aW9uVmVyYigpOwor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJzZWxlY3QiOwogfQogCiBTdHJpbmcg
bWlzc2luZ1BsdWdpblRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5taXNzaW5nUGx1Z2luVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJNaXNzaW5n
IFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnaW4gaXMgbWlzc2lu
ZyIpOwogfQogCiBTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jcmFzaGVkUGx1Z2luVGV4dCgpOworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJQbHVnLWluIEZhaWx1cmUiLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIGlmIHBs
dWdpbiBob3N0IHByb2Nlc3MgaGFzIGNyYXNoZWQiKTsKIH0KIAogU3RyaW5nIG11bHRpcGxlRmls
ZVVwbG9hZFRleHQodW5zaWduZWQgbnVtYmVyT2ZGaWxlcykKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+bXVsdGlwbGVGaWxlVXBsb2FkVGV4dChudW1iZXJPZkZpbGVzKTsK
KyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiVkIGZpbGVz
IiwgIkxhYmVsIHRvIGRlc2NyaWJlIHRoZSBudW1iZXIgb2YgZmlsZXMgc2VsZWN0ZWQgaW4gYSBm
aWxlIHVwbG9hZCBjb250cm9sIHRoYXQgYWxsb3dzIG11bHRpcGxlIGZpbGVzIiksIG51bWJlck9m
RmlsZXMpOwogfQogCiBTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4dCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnVua25vd25GaWxlU2l6ZVRleHQoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3Rv
cnkgbGlzdGluZyBpdGVtIik7CiB9CiAKICNpZiBQTEFURk9STShXSU4pCiBTdHJpbmcgdXBsb2Fk
RmlsZVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT51cGxvYWRG
aWxlVGV4dCgpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJ1cGxvYWQiOwog
fQogCiBTdHJpbmcgYWxsRmlsZXNUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+YWxsRmlsZXNUZXh0KCk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gImFsbCBmaWxlcyI7CiB9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKIFN0cmluZyBi
dWlsdEluUERGUGx1Z2luTmFtZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPmJ1aWx0SW5QREZQbHVnaW5OYW1lKCk7CisgICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4K
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0IGJ1aWx0LWluIFBERiIsICJQc2V1ZG8g
cGx1Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFy
aS4iKTsKIH0KIAogU3RyaW5nIHBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uKCkKIHsKLSAgICBy
ZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+cGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24o
KTsKKyAgICAvLyBBbHNvIGV4cG9zZWQgdG8gRE9NLgorICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJQb3J0YWJsZSBEb2N1bWVudCBGb3JtYXQiLCAiRGVzY3JpcHRpb24gb2YgdGhlIChvbmx5KSB0
eXBlIHN1cHBvcnRlZCBieSBQREYgcHNldWRvIHBsdWctaW4uIFZpc2libGUgaW4gSW5zdGFsbGVk
IFBsdWctaW5zIHBhZ2UgaW4gU2FmYXJpLiIpOwogfQogCiBTdHJpbmcga2V5Z2VuTWVudUl0ZW01
MTIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXlnZW5NZW51SXRl
bTUxMigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCI1MTIgKExvdyBHcmFkZSkiLCAiTWVu
dSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsKIH0KIAogU3RyaW5nIGtleWdl
bk1lbnVJdGVtMTAyNCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmtl
eWdlbk1lbnVJdGVtMTAyNCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCIxMDI0IChNZWRp
dW0gR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7CiB9
CiAKIFN0cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5rZXlnZW5NZW51SXRlbTIwNDgoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiMjA0OCAoSGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9w
LXVwIG1lbnUiKTsKIH0KIAogU3RyaW5nIGtleWdlbktleWNoYWluSXRlbU5hbWUoY29uc3QgU3Ry
aW5nJiBob3N0KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXlnZW5L
ZXljaGFpbkl0ZW1OYW1lKGhvc3QpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaG9zdENG
U3RyaW5nKEFkb3B0Q0YsIGhvc3QuY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgcmV0dXJuIGZvcm1h
dExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJLZXkgZnJvbSAlQCIsICJOYW1lIG9mIGtl
eWNoYWluIGtleSBnZW5lcmF0ZWQgYnkgdGhlIEtFWUdFTiB0YWciKSwgaG9zdENGU3RyaW5nLmdl
dCgpKTsKIH0KIAogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCitTdHJpbmcgaHRtbFNlbGVj
dE11bHRpcGxlSXRlbXMoc2l6ZV90IGNvdW50KQoreworICAgIHN3aXRjaCAoY291bnQpIHsKKyAg
ICBjYXNlIDA6CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNl
bnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBtdWx0aXBsZT4gd2hlbiBubyA8b3B0aW9uPiBpdGVtcyBh
cmUgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOworICAgIGNhc2UgMToKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIjEgSXRlbSIsICJQcmVzZW50IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlw
bGU+IHdoZW4gYSBzaW5nbGUgPG9wdGlvbj4gaXMgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NU
UklORygiJXp1IEl0ZW1zIiwgIlByZXNlbnQgdGhlIG51bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9u
PiBpdGVtcyBpbiBhIDxzZWxlY3QgbXVsdGlwbGU+IGVsZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3Vu
dCk7CisgICAgfQorfQorI2VuZGlmCisKIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmltYWdlVGl0bGUoZmlsZW5hbWUsIHNpemUpOworI2lmIFVTRShDRikKKyNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gZmlsZW5hbWVDRlN0cmluZyhBZG9wdENGLCBmaWxlbmFtZS5jcmVhdGVDRlN0cmluZygpKTsK
KyAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGxvY2FsZShBZG9wdENGLCBDRkxvY2FsZUNvcHlD
dXJyZW50KCkpOworICAgIFJldGFpblB0cjxDRk51bWJlckZvcm1hdHRlclJlZj4gZm9ybWF0dGVy
KEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRlKDAsIGxvY2FsZS5nZXQoKSwga0NGTnVt
YmVyRm9ybWF0dGVyRGVjaW1hbFN0eWxlKSk7CisKKyAgICBpbnQgd2lkdGhJbnQgPSBzaXplLndp
ZHRoKCk7CisgICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiB3aWR0aChBZG9wdENGLCBDRk51bWJl
ckNyZWF0ZSgwLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmd2lkdGhJbnQpKTsKKyAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IHdpZHRoU3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0dGVyQ3JlYXRl
U3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIHdpZHRoLmdldCgpKSk7CisKKyAg
ICBpbnQgaGVpZ2h0SW50ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICBSZXRhaW5QdHI8Q0ZOdW1iZXJS
ZWY+IGhlaWdodChBZG9wdENGLCBDRk51bWJlckNyZWF0ZSgwLCBrQ0ZOdW1iZXJJbnRUeXBlLCAm
aGVpZ2h0SW50KSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBoZWlnaHRTdHJpbmcoQWRv
cHRDRiwgQ0ZOdW1iZXJGb3JtYXR0ZXJDcmVhdGVTdHJpbmdXaXRoTnVtYmVyKDAsIGZvcm1hdHRl
ci5nZXQoKSwgaGVpZ2h0LmdldCgpKSk7CisKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3Ry
aW5nKFdFQl9VSV9TVFJJTkcoIiVAICVAw5clQCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBh
IHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwg
ZmlsZW5hbWVDRlN0cmluZy5nZXQoKSwgd2lkdGhTdHJpbmcuZ2V0KCksIGhlaWdodFN0cmluZy5n
ZXQoKSk7CisjZWxzZQorICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmlsZW5hbWVDRlN0cmlu
ZyhBZG9wdENGLCBmaWxlbmFtZS5jcmVhdGVDRlN0cmluZygpKTsKKyAgICByZXR1cm4gZm9ybWF0
TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiVAICVkw5clZCBwaXhlbHMiLCAid2luZG93
IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9s
LCBub3QgeCkiKSwgZmlsZW5hbWVDRlN0cmluZy5nZXQoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpKTsKKyNlbmRpZgorI2Vsc2UKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFdFQl9VSV9TVFJJTkcoIjxmaWxlbmFtZT4gJWTDlyVkIHBpeGVscyIsICJ3aW5kb3cgdGl0bGUg
Zm9yIGEgc3RhbmRhbG9uZSBpbWFnZSAodXNlcyBtdWx0aXBsaWNhdGlvbiBzeW1ib2wsIG5vdCB4
KSIpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpLnJlcGxhY2UoIjxmaWxlbmFtZT4iLCBm
aWxlbmFtZSk7CisjZW5kaWYKIH0KIAogU3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRl
eHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5tZWRpYUVsZW1lbnRM
b2FkaW5nU3RhdGVUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvYWRpbmcuLi4i
LCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHRoZSBtZWRpYSBpcyBsb2Fk
aW5nIik7CiB9CiAKIFN0cmluZyBtZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+bWVkaWFFbGVtZW50TGl2ZUJy
b2FkY2FzdFN0YXRlVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMaXZlIEJyb2Fk
Y2FzdCIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gd2F0Y2hpbmcgYSBs
aXZlIGJyb2FkY2FzdCIpOwogfQogCi1TdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dFN0cmluZyhjb25zdCBTdHJpbmcmIGNvbnRyb2xOYW1lKQorU3RyaW5nIGxvY2FsaXplZE1lZGlh
Q29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5sb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5n
KGNvbnRyb2xOYW1lKTsKKyAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoImF1ZGlvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3Np
YmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGF1ZGlvIGVsZW1lbnQgY29udHJvbGxlciIpOwor
ICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygidmlkZW8gZWxlbWVudCBjb250cm9sbGVyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNj
cmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9sbGVyIik7CisgICAgaWYgKG5hbWUgPT0g
Ik11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibXV0ZSIsICJhY2Nl
c3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIG11dGUgYnV0dG9uIik7CisgICAgaWYgKG5h
bWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11
dGUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0dXJuIG11dGUgb2ZmIGJ1
dHRvbiIpOworICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoInBsYXkiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBw
bGF5IGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJwYXVzZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHBhdXNlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIHRpbWVsaW5lIHNsaWRlciIpOworICAgIGlmIChuYW1lID09ICJTbGlk
ZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lbGluZSBzbGlkZXIg
dGh1bWIiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSB0aHVt
YiIpOworICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiYmFjayAzMCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlw
dGlvbiBmb3Igc2VlayBiYWNrIDMwIHNlY29uZHMgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0g
IlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
cmV0dXJuIHRvIHJlYWx0aW1lIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
cmV0dXJuIHRvIHJlYWwgdGltZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRp
bWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImVsYXBzZWQgdGltZSIs
ICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGVsYXBzZWQgdGltZSBkaXNwbGF5
Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInJlbWFpbmluZyB0aW1lIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBk
ZXNjcmlwdGlvbiBmb3IgdGltZSByZW1haW5pbmcgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09
ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInN0YXR1cyIs
ICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIG1vdmllIHN0YXR1cyIpOworICAg
IGlmIChuYW1lID09ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImZ1bGxzY3JlZW4iLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBl
bnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1
dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJmYXN0IGZvcndhcmQiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7Cisg
ICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImZhc3QgcmV2ZXJzZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IGZhc3QgcmV2ZXJzZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2hvd0Nsb3NlZENhcHRp
b25zQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNob3cgY2xvc2VkIGNh
cHRpb25zIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Igc2hvdyBjbG9zZWQg
Y2FwdGlvbnMgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkhpZGVDbG9zZWRDYXB0aW9uc0J1
dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJoaWRlIGNsb3NlZCBjYXB0aW9u
cyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGhpZGUgY2xvc2VkIGNhcHRp
b25zIGJ1dHRvbiIpOworCisgICAgLy8gRklYTUU6IHRoZSBDb250cm9sc1BhbmVsIGNvbnRhaW5l
ciBzaG91bGQgbmV2ZXIgYmUgdmlzaWJsZSBpbiB0aGUgYWNjZXNzaWJpbGl0eSBoaWVyYXJjaHku
CisgICAgaWYgKG5hbWUgPT0gIkNvbnRyb2xzUGFuZWwiKQorICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9
CiAKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3Ry
aW5nJiBjb250cm9sTmFtZSkKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVs
cFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5sb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29udHJvbE5hbWUp
OworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiYXVkaW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3Bs
YXkiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNv
bnRyb2xsZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInZpZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0
YXR1cyBkaXNwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8g
ZWxlbWVudCBjb250cm9sbGVyIik7CisgICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQorICAg
ICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJp
bGl0eSBoZWxwIHRleHQgZm9yIG11dGUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0
ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJh
Y2tzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB1biBtdXRlIGJ1dHRvbiIpOworICAg
IGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImJlZ2luIHBsYXliYWNrIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRv
biIpOworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJwYXVzZSBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
cGF1c2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCisgICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJtb3ZpZSB0aW1lIHNjcnViYmVyIiwgImFjY2Vzc2liaWxpdHkgaGVs
cCB0ZXh0IGZvciB0aW1lbGluZSBzbGlkZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1
bWIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0
aHVtYiIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1i
Iik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJzZWVrIG1vdmllIGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3IganVtcCBiYWNrIDMwIHNlY29uZHMgYnV0dG9uIik7CisgICAgaWYgKG5hbWUg
PT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygicmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFsIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIHJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIp
OworICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiY3VycmVudCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJp
bGl0eSBoZWxwIHRleHQgZm9yIGVsYXBzZWQgdGltZSBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUg
PT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Im51bWJlciBvZiBzZWNvbmRzIG9mIG1vdmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3IgcmVtYWluaW5nIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJT
dGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92
aWUgc3RhdHVzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlz
cGxheSIpOworICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAg
dGV4dCBmb3IgZmFzdCByZXdpbmQgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3
YXJkQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBm
b3J3YXJkIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBmYXN0IGZvcndhcmQgYnV0dG9u
Iik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiUGxheSBtb3ZpZSBpbiBmdWxsc2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJp
bGl0eSBoZWxwIHRleHQgZm9yIGVudGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7CisgICAgaWYgKG5h
bWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJzdGFydCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisgICAgaWYgKG5h
bWUgPT0gIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJzdG9wIGRpc3BsYXlpbmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAogU3RyaW5nIGxvY2Fs
aXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKHRpbWUpOwor
ICAgIGlmICghaXNmaW5pdGUodGltZSkpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJp
bmRlZmluaXRlIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGFuIGluZGVmaW5p
dGUgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlIik7CisKKyAgICBpbnQgc2Vjb25kcyA9IHN0
YXRpY19jYXN0PGludD4oZmFic2YodGltZSkpOworICAgIGludCBkYXlzID0gc2Vjb25kcyAvICg2
MCAqIDYwICogMjQpOworICAgIGludCBob3VycyA9IHNlY29uZHMgLyAoNjAgKiA2MCk7CisgICAg
aW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOworICAgIHNlY29uZHMgJT0gNjA7CisK
KyAgICBpZiAoZGF5cykKKyAgICAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJf
VUlfU1RSSU5HKCIlMSRkIGRheXMgJTIkZCBob3VycyAlMyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRz
IiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFs
dWUgPj0gMSBkYXkiKSwgZGF5cywgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpOworICAgIGlmICho
b3VycykKKyAgICAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5H
KCIlMSRkIGhvdXJzICUyJGQgbWludXRlcyAlMyRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+PSA2MCBtaW51dGVzIiks
IGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAobWludXRlcykKKyAgICAgICAgcmV0
dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlMSRkIG1pbnV0ZXMgJTIk
ZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVy
IHRpbWUgdmFsdWUgPj0gNjAgc2Vjb25kcyIpLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgc2Vjb25kcyIsICJh
Y2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlIDwg
NjAgc2Vjb25kcyIpLCBzZWNvbmRzKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVxdWlyZWQgZm9y
bSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOwogfQogCiBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JDaGVja2JveFRleHQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1Rl
eHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CiB9
CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckZpbGVUZXh0KCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VWYWx1
ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
VGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JNdWx0
aXBsZUZpbGVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VW
YWx1ZU1pc3NpbmdGb3JSYWRpb1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4g
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclNlbGVjdFRleHQoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsK
KyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CiB9CiAKIFN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidHlwZSBtaXNtYXRjaCIsICJWYWxpZGF0aW9u
IG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRjaGlu
ZyB0eXBlIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVt
YWlsVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFRleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1p
c21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25T
dHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAgICByZXR1
cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQoKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsK
KyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CiB9CiAKIFN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRj
aFRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJW
YWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29u
c3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4iKTsKIH0KIAogU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBmb3Jt
IGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0aGFuIG1heGltdW0gYWxsb3dl
ZCBsZW5ndGgiKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dU
ZXh0KGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoInJhbmdlIHVuZGVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0
IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBsb3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpOwog
fQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJp
bmcmKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJhbmdl
IG92ZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3
aXRoIHZhbHVlIGhpZ2hlciB0aGFuIGFsbG93ZWQgbWF4aW11bSIpOwogfQogCiBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dCgpOwotfQotCi0jZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFU
RUdJRVMpCi0KLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oV0lOKQotU3RyaW5nIGxv
Y2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCi17Ci0gICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInN0ZXAg
bWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdp
dGggdmFsdWUgbm90IHJlc3BlY3RpbmcgdGhlIHN0ZXAgYXR0cmlidXRlIik7CiB9Ci0jZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCmluZGV4IGE3M2M5OTFmZWRhOTdlZTk5YjlhZmUyODdjNWM2MGI2MzFhNzM1
MmEuLjNlYmJlZjcyMmUzY2ViNTJjMDgwMGFiNmExNDE3ODZiOGE4YjBkYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE3NCw2ICsxNzQsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNv
bnN0IFN0cmluZyYgaG9zdCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBTdHJp
bmcgaHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90IG51bSk7CisjZW5kaWYKKwogICAgIFN0
cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNp
emUpOwogCiAgICAgU3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKTsKQEAgLTE5
OCwxMSArMjAyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1heGltdW0pOwogICAgIFN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiBiYXNl
LCBjb25zdCBTdHJpbmcmIHN0ZXApOwogCi0KKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAjZGVm
aW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5nLCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVk
U3RyaW5nKHN0cmluZykKICNkZWZpbmUgV0VCX1VJX1NUUklOR19LRVkoc3RyaW5nLCBrZXksIGRl
c2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoa2V5KQogCiAgICAgU3RyaW5nIGxv
Y2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpOworI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKaW5kZXggZGM5ZmMzNWE3MGU5M2NlNjQzOWY3YmE3MzNmNDRkM2QyNzYzYzc0YS4uNjQz
ZjM3NTA1OGVjYjgzMGJiNTdkNTBlOTJjZGQ2NTkwM2IxNjIzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0yOSw4ICsyOSw2IEBACiAK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKIAotI2luY2x1ZGUgIkRlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneS5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBQbGF0
Zm9ybVN0cmF0ZWdpZXMqIHNfcGxhdGZvcm1TdHJhdGVnaWVzOwpAQCAtNTksMTEgKzU3LDYgQEAg
Ym9vbCBoYXNQbGF0Zm9ybVN0cmF0ZWdpZXMoKQogICAgIHJldHVybiBzX3BsYXRmb3JtU3RyYXRl
Z2llczsKIH0KIAotTG9jYWxpemF0aW9uU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKQotewotICAgIHJldHVybiBuZXcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggMDMxODJjNjI1OThkMmQyMjhiYTA4Zjk0NGQ1MDVmNjQx
MjE3NmY3Mi4uYzg1ZWU1OTAzZDQ0OTgzOTAxY2Q0MzgzYmNiZmZiMTJlNDA1NDY3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTMzLDcgKzMz
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29va2llc1N0cmF0ZWd5OwogY2xhc3Mg
UGFzdGVib2FyZFN0cmF0ZWd5OwogY2xhc3MgUGx1Z2luU3RyYXRlZ3k7Ci1jbGFzcyBMb2NhbGl6
YXRpb25TdHJhdGVneTsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RyYXRlZ3k7CiAKIGNsYXNzIFBsYXRm
b3JtU3RyYXRlZ2llcyB7CkBAIC01MiwxMyArNTEsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBtX3BsdWdpblN0cmF0ZWd5OwogICAgIH0KIAotICAgIExvY2FsaXphdGlvblN0cmF0ZWd5KiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpCi0gICAgewotICAgICAgICBpZiAoIW1fbG9jYWxpemF0aW9u
U3RyYXRlZ3kpCi0gICAgICAgICAgICBtX2xvY2FsaXphdGlvblN0cmF0ZWd5ID0gY3JlYXRlTG9j
YWxpemF0aW9uU3RyYXRlZ3koKTsKLSAgICAgICAgcmV0dXJuIG1fbG9jYWxpemF0aW9uU3RyYXRl
Z3k7Ci0gICAgfQotCiAgICAgVmlzaXRlZExpbmtTdHJhdGVneSogdmlzaXRlZExpbmtTdHJhdGVn
eSgpCiAgICAgewogICAgICAgICBpZiAoIW1fdmlzaXRlZExpbmtTdHJhdGVneSkKQEAgLTc2LDcg
KzY4LDYgQEAgcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtU3RyYXRlZ2llcygpCiAgICAgICAgIDog
bV9jb29raWVzU3RyYXRlZ3koMCkKICAgICAgICAgLCBtX3BsdWdpblN0cmF0ZWd5KDApCi0gICAg
ICAgICwgbV9sb2NhbGl6YXRpb25TdHJhdGVneSgwKQogICAgICAgICAsIG1fdmlzaXRlZExpbmtT
dHJhdGVneSgwKQogICAgICAgICAsIG1fcGFzdGVib2FyZFN0cmF0ZWd5KDApCiAgICAgewpAQCAt
ODksMTMgKzgwLDExIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBDb29raWVz
U3RyYXRlZ3kqIGNyZWF0ZUNvb2tpZXNTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIFBsdWdp
blN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJhdGVneSgpID0gMDsKLSAgICB2aXJ0dWFsIExvY2Fs
aXphdGlvblN0cmF0ZWd5KiBjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneSgpOwogICAgIHZpcnR1
YWwgVmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpID0gMDsK
ICAgICB2aXJ0dWFsIFBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5
KCkgPSAwOyAKIAogICAgIENvb2tpZXNTdHJhdGVneSogbV9jb29raWVzU3RyYXRlZ3k7CiAgICAg
UGx1Z2luU3RyYXRlZ3kqIG1fcGx1Z2luU3RyYXRlZ3k7Ci0gICAgTG9jYWxpemF0aW9uU3RyYXRl
Z3kqIG1fbG9jYWxpemF0aW9uU3RyYXRlZ3k7CiAgICAgVmlzaXRlZExpbmtTdHJhdGVneSogbV92
aXNpdGVkTGlua1N0cmF0ZWd5OwogICAgIFBhc3RlYm9hcmRTdHJhdGVneSogbV9wYXN0ZWJvYXJk
U3RyYXRlZ3k7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9j
YWxpemVkU3RyaW5nc1F0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXpl
ZFN0cmluZ3NRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ4ZDZiODQ2OGE4MDI2MDdlYWUyMWVlYmU3ZTYy
YTFkZDJmMjU2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAKQEAgLTAsMCArMSw2OTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcgU3RhaWtvcyBDb21wdXRpbmcgU2VydmljZXMgSW5jLiA8aW5mb0BzdGFpa29z
Lm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJTmRUIC0gSW5z
dGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKworI2luY2x1ZGUgIkludFNpemUuaCIK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJT
dWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSBhbHQgdGV4dCBmb3IgPGlucHV0PiBlbGVt
ZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Cit9CisKK1N0cmluZyByZXNldEJ1
dHRvbkRlZmF1bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiUmVzZXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgUmVzZXQgYnV0dG9u
cyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30KKworU3RyaW5nIHNlYXJjaGFibGVJbmRleElu
dHJvZHVjdGlvbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3
b3JkczogIiwgInRleHQgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBuZWFybHktb2Jzb2xl
dGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEgJ3NlYXJjaGFibGUgaW5kZXgnIik7Cit9CisK
K1N0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJkZWZhdWx0IGxhYmVs
IGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsKK30KKworU3RyaW5n
IGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNob29zZSBGaWxlIiwgInRpdGxlIGZvciBhIHNp
bmdsZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyIpOworfQorCitTdHJp
bmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCit7CisgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hvb3NlIEZpbGVzIiwgInRp
dGxlIGZvciBhIG11bHRpcGxlIGZpbGUgY2hvb3NlciBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1z
LiBUaGlzIHRpdGxlIHNob3VsZCBiZSBhcyBzaG9ydCBhcyBwb3NzaWJsZS4iKTsKK30KKworU3Ry
aW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlIHNlbGVjdGVkIiwgInRl
eHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBm
aWxlIGlzIHNlbGVjdGVkIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVk
TGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIk5vIGZpbGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRv
biB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBi
dXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7Cit9CisKK1N0cmlu
ZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZXRhaWxzIiwgInRleHQgdG8gZGlzcGxheSBp
biA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1tYXJ5PiBjaGlsZCIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBpbiBOZXcg
V2luZG93IiwgIk9wZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZlIExpbmsuLi4i
LCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgTGluayIsICJDb3B5
IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5JbWFnZUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEltYWdlIiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdp
bmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRJbWFnZVRvRGlzaygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0
IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9D
bGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkNvcHkgSW1hZ2UiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29w
eSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0iKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIFZpZGVv
IiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gQXVkaW8iLCAiT3BlbiBBdWRpbyBpbiBO
ZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5r
VG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8iLCAiQ29weSBWaWRlbyBMaW5rIExvY2F0aW9uIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNv
cHkgQXVkaW8iLCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29udHJvbHMiLCAiVG9n
Z2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRW50
ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXkiKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIiwgIlBhdXNlIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUiLCAiTXV0ZSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gRnJh
bWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IiwgIkNvcHkgY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiR28gQmFjayIs
ICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdHb0ZvcndhcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkdvIEZvcndhcmQiLCAiRm9yd2FyZCBjb250ZXh0IG1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCit7CisgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RvcCIsICJTdG9wIGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlbG9h
ZCIsICJSZWxvYWQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0N1dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiQ3V0IiwgIkN1dCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhc3RlIiwgIlBhc3RlIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlbGVjdCBBbGwi
LCAiU2VsZWN0IEFsbCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8gR3Vlc3NlcyBG
b3VuZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
SWdub3JlU3BlbGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgU3BlbGxpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkFkZCBU
byBEaWN0aW9uYXJ5IiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlYXJjaCBUaGUgV2ViIiwgIlNl
YXJjaCBUaGUgV2ViIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb29rIFVwIEluIERpY3Rp
b25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCit7CisgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBMaW5rIiwgIk9wZW4gTGlu
ayBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdu
b3JlR3JhbW1hcigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiSWdub3JlIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNwZWxsaW5nIiwg
IlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQoreworICAg
IHJldHVybiBzaG93ID8gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJT
aG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpIDoKKyAgICAgICAg
ICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSGlkZSBT
cGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIiwgIkNoZWNrIHNw
ZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyIs
ICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCit7Cisg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sg
R3JhbW1hciBXaXRoIFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250
ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUo
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IkZvbnRzIiwgIkZvbnQgY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpCit7CisgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSXRhbGljIiwgIkl0YWxpYyBjb250
ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5l
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPdXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBt
ZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rp
b25NZW51KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJEaXJlY3Rpb24iLCAiV3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
VGV4dCBEaXJlY3Rpb24iLCAiVGV4dCBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZWZhdWx0
IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMZWZ0IHRvIFJpZ2h0IiwgIkxl
ZnQgdG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExlZnQgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVt
ZW50KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJJbnNwZWN0IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyByZWNlbnQgc2VhcmNo
ZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNr
aW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMgaGF2ZSBiZWVu
IHBlcmZvcm1lZCIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
UmVjZW50IHNlYXJjaGVzIiwgImxhYmVsIGZvciBmaXJzdCBpdGVtIGluIHRoZSBtZW51IHRoYXQg
YXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHVzZWQgYXMg
ZW1iZWRkZWQgbWVudSB0aXRsZSIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50
U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJDbGVhciByZWNlbnQgc2VhcmNoZXMiLCAibWVudSBpdGVtIGluIFJlY2Vu
dCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMiKTsKK30KKworU3Ry
aW5nIEFYV2ViQXJlYVRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitTdHJpbmcgQVhMaW5rVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpc3RNYXJrZXJUZXh0
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYSGVhZGluZ1RleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhEZWZpbml0
aW9uTGlzdFRlcm1UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
QVhUZXh0RmllbGRBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWE1lbnVMaXN0QWN0aW9u
VmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYTGlua0FjdGlvblZl
cmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0
IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOworfQorCitTdHJpbmcgY3Jh
c2hlZFBsdWdpblRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHVua25vd25GaWxlU2l6ZVRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGly
ZWN0b3J5IGxpc3RpbmcgaXRlbSIpOworfQorCitTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJp
bmcmIGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxICglMnglMyBwaXhlbHMpIiwgIlRp
dGxlIHN0cmluZyBmb3IgaW1hZ2VzIikuYXJnKGZpbGVuYW1lKS5hcmcoc2l6ZS53aWR0aCgpKS5h
cmcoc2l6ZS5oZWlnaHQoKSk7Cit9CisKK1N0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVU
ZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0
aGUgbWVkaWEgaXMgbG9hZGluZyIpOworfQorCitTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2Fk
Y2FzdFN0YXRlVGV4dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMg
bWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKK30KKworI2lmIEVOQUJM
RShWSURFTykKKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29u
c3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQorICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBdWRp
byBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09
ICJWaWRlb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJWaWRlbyBFbGVtZW50IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTXV0ZSBCdXR0b24iLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCisg
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVu
bXV0ZSBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUg
PT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJQbGF5IEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSBCdXR0b24iLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCisgICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNsaWRlciIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1
bWIiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJTbGlkZXIgVGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYg
KG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxl
ciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQor
ICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJS
ZXR1cm4gdG8gUmVhbC10aW1lIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
KyAgICBpZiAobmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRWxhcHNlZCBUaW1lIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5n
RGlzcGxheSIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlJlbWFpbmluZyBUaW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwor
ICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RhdHVzIERpc3BsYXkiLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24i
KQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJGdWxsc2NyZWVuIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBp
ZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIEZvcndhcmQgQnV0dG9uIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRv
biIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlNlZWsgQmFjayBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRp
b0VsZW1lbnQiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJBdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlz
cGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVmlk
ZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRp
c3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIk11
dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKKyAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIGF1ZGlvIHRyYWNrcyIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRv
biIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkJlZ2luIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlm
IChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xs
ZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3ZpZSB0aW1lIHNjcnVi
YmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTbGlk
ZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBtb3ZpZSIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbC10aW1lIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURp
c3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJDdXJyZW50IG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWluaW5nIG1vdmll
IHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlN0
YXR1c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHN0YXR1cyIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkgbW92aWUg
aW4gZnVsbC1zY3JlZW4gbW9kZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBp
ZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgYmFjayIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24i
KQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCit7CisgICAgaWYg
KCFpc2Zpbml0ZSh0aW1lKSkKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiSW5kZWZpbml0ZSB0aW1lIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRp
b24iKTsKKworICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKKyAgICBpbnQgZGF5
cyA9IHNlY29uZHMgLyAoNjAgKiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8g
KDYwICogNjApOworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBz
ZWNvbmRzICU9IDYwOworCisgICAgaWYgKGRheXMpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGRheXMgJTIgaG91cnMgJTMgbWludXRl
cyAlNCBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoZGF5cykuYXJnKGhv
dXJzKS5hcmcobWludXRlcykuYXJnKHNlY29uZHMpOworCisgICAgaWYgKGhvdXJzKQorICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBob3Vy
cyAlMiBtaW51dGVzICUzIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyho
b3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKKworICAgIGlmIChtaW51dGVzKQorICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBt
aW51dGVzICUyIHNlY29uZHMiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhtaW51dGVz
KS5hcmcoc2Vjb25kcyk7CisKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICIlMSBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmco
c2Vjb25kcyk7Cit9CisKKyNlbHNlIC8vIEVOQUJMRShWSURFTykKKy8vIEZJWE1FOiAjaWYgRU5B
QkxFKFZJREVPKSBzaG91bGQgYmUgaW4gdGhlIGJhc2UgY2xhc3MKKworU3RyaW5nIGxvY2FsaXpl
ZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRI
ZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZh
bHVlTWlzc2luZ0ZvckZpbGVUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
Rm9yTXVsdGlwbGVGaWxlVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0Zv
clJhZGlvVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvclNlbGVjdFRl
eHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21h
dGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCB2YWx1ZUxlbmd0
aCwgaW50IG1heExlbmd0aCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KGNvbnN0IFN0cmluZyYgbWluaW11bSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxv
d1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlz
bWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFzZSwgY29uc3QgU3RyaW5nJiBzdGVwKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbG9j
YWxpemVkU3RyaW5nKGNvbnN0IGNoYXIqIGtleSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOChrZXksIHN0cmxlbihrZXkpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNwcAppbmRleCAyNDc2
NzEyZDE1MzZjOTAwYzIyMjFkMTg0YmI5ZmI3ZmIwNDVhYzczLi5jZDRhYjBkNzJkODY4MTI1ZGM4
NmVlOTg3YmNjZTZlZjNhYjFhZDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNwcApAQCAtNjgsMTEgKzY4LDYg
QEAgUGx1Z2luU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmVhdGVQbHVnaW5TdHJh
dGVneSgpCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLUxvY2FsaXphdGlvblN0cmF0ZWd5KiBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKQotewotICAgIHJl
dHVybiB0aGlzOwotfQotCiBWaXNpdGVkTGlua1N0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpCiB7CiAgICAgcmV0dXJuIHRoaXM7CkBAIC0x
NTAsNjA4ICsxNDUsNiBAQCB2b2lkIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpnZXRQbHVnaW5JbmZv
KGNvbnN0IFdlYkNvcmU6OlBhZ2UqIHBhZ2UsIFZlY3RvcjxXZWJDbwogCiB9CiAKLQotLy8gTG9j
YWxpemF0aW9uU3RyYXRlZ3kKLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjppbnB1dEVs
ZW1lbnRBbHRUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSBhbHQgdGV4dCBm
b3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJl
c2V0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBh
Z2VzIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoYWJsZUluZGV4
SW50cm9kdWN0aW9uKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtl
eXdvcmRzOiAiLCAidGV4dCB0aGF0IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNv
bGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwo
KQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlN1Ym1pdCIsICJkZWZhdWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3
ZWIgcGFnZXMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9u
Q2hvb3NlRmlsZUxhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBj
aG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaG9vc2Ug
RmlsZXMiLCAidGl0bGUgZm9yIGEgbXVsdGlwbGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGlu
IEhUTUwgZm9ybXMuIFRoaXMgdGl0bGUgc2hvdWxkIGJlIGFzIHNob3J0IGFzIHBvc3NpYmxlLiIp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25Ob0ZpbGVTZWxl
Y3RlZExhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJObyBmaWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1
dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExh
YmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJObyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24g
dXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0
dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKQotewotICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRldGFpbHMi
LCAidGV4dCB0byBkaXNwbGF5IGluIDxkZXRhaWxzPiB0YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1h
cnk+IGNoaWxkIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBpbiBOZXcgV2luZG93IiwgIk9wZW4g
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpCi17Ci0g
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBM
aW5rLi4uIiwgIkRvd25sb2FkIExpbmtlZCBGaWxlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtU
b0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiQ29weSBMaW5rIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5J
bWFnZUluTmV3V2luZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJPcGVuIEltYWdlIiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNhdmUgSW1hZ2UiLCAiRG93bmxv
YWQgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFn
ZSIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgp
Ci17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
Q29weSBJbWFnZSBBZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlk
ZW9Jbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiT3BlbiBWaWRlbyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVu
QXVkaW9Jbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBBdWRpbyIsICJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ci
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8iLCAiQ29weSBWaWRlbyBMaW5rIExv
Y2F0aW9uIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEF1ZGlvIiwgIkNvcHkgQXVkaW8g
TGluayBMb2NhdGlvbiIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBDb250cm9scyIsICJUb2dn
bGUgTWVkaWEgQ29udHJvbHMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBN
ZWRpYSBMb29wIFBsYXliYWNrIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVudGVyIEZ1bGxzY3JlZW4i
LCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkiLCAiUGxheSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlBhdXNlIiwgIlBhdXNlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIiwgIk11dGUiKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5l
d1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiT3BlbiBGcmFtZSIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJDb3B5IiwgIkNvcHkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEJh
Y2siLCAiQmFjayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiR28gRm9yd2FyZCIsICJGb3J3
YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6Y29udGV4dE1lbnVJdGVtVGFnU3RvcCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3RvcCIsICJTdG9wIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
UmVsb2FkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJSZWxvYWQiLCAiUmVsb2FkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ3V0KCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXQiLCAiQ3V0
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhc3RlIiwgIlBhc3RlIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
U2VsZWN0QWxsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJTZWxlY3QgQWxsIiwgIlNlbGVjdCBBbGwgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdOb0d1
ZXNzZXNGb3VuZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgU3BlbGxpbmcgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0
TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBZGQgVG8gRGljdGlvbmFyeSIsICJMZWFybiBTcGVs
bGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VhcmNoIFRoZSBXZWIiLCAiU2VhcmNo
IFRoZSBXZWIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5n
JikKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJMb29rIFVwIEluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnT3BlbkxpbmsoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gTGluayIsICJPcGVuIExpbmsgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdJZ25vcmVHcmFtbWFyKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJJZ25vcmUiLCAiSWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdTcGVsbGluZ01lbnUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlNwZWxsaW5nIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQg
c3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRl
eHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKLXsKLSAgICByZXR1cm4g
c2hvdyA/IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2hvdyBTcGVs
bGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKSA6Ci0gICAgICAgICAgICAgICAg
ICBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkhpZGUgU3BlbGxpbmcg
YW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgU3BlbGxp
bmciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVU
eXBpbmcoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGls
ZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNr
IEdyYW1tYXIgV2l0aCBTcGVsbGluZyIsICJDaGVjayBncmFtbWFyIHdpdGggc3BlbGxpbmcgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRm9udHMiLCAiRm9udCBjb250ZXh0IHN1Yi1tZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdCb2xkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkl0YWxpYyIsICJJ
dGFsaWMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVuZGVybGluZSIsICJVbmRlcmxpbmUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPdXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0
ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRGlyZWN0aW9uIiwgIldyaXRpbmcgZGlyZWN0aW9u
IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OmNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUZXh0IERpcmVjdGlvbiIs
ICJUZXh0IGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJE
ZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0
VG9SaWdodCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiTGVmdCB0byBSaWdodCIsICJMZWZ0IHRvIFJpZ2h0IGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJJbnNwZWN0IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnNlYXJjaE1lbnVO
b1JlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gcmVjZW50IHNlYXJjaGVzIiwgIkxhYmVsIGZvciBvbmx5
IGl0ZW0gaW4gbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZp
ZWxkIGltYWdlLCB3aGVuIG5vIHNlYXJjaGVzIGhhdmUgYmVlbiBwZXJmb3JtZWQiKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJSZWNlbnQgc2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhh
dCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBh
cyBlbWJlZGRlZCBtZW51IHRpdGxlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDbGVhciByZWNlbnQgc2VhcmNo
ZXMiLCAibWVudSBpdGVtIGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51
J3MgY29udGVudHMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFdlYkFy
ZWFUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWExpbmtUZXh0KCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpBWExpc3RNYXJrZXJUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpBWEltYWdlTWFwVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhIZWFkaW5n
VGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRl
eHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYQnV0dG9uQWN0aW9uVmVyYigpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OkFYVGV4dEZpZWxkQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0OjpBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6QVhNZW51TGlzdEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFY
TGlua0FjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0
cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6Om1pc3NpbmdQbHVnaW5U
ZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJNaXNzaW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVn
LWluIGlzIG1pc3NpbmciKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmFz
aGVkUGx1Z2luVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3Ry
aW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bXVsdGlwbGVGaWxlVXBs
b2FkVGV4dCh1bnNpZ25lZCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBT
dHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp1bmtub3duRmlsZVNp
emVUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJVbmtub3duIiwgIlVua25vd24gZmlsZXNpemUgRlRQIGRpcmVjdG9yeSBsaXN0aW5n
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjppbWFnZVRpdGxlKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgKCUyeCUzIHBpeGVs
cykiLCAiVGl0bGUgc3RyaW5nIGZvciBpbWFnZXMiKS5hcmcoZmlsZW5hbWUpLmFyZyhzaXplLndp
ZHRoKCkpLmFyZyhzaXplLmhlaWdodCgpKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlhIGNv
bnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RT
dGF0ZVRleHQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkxpdmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3Nh
Z2Ugd2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7Ci19Ci0KLSNpZiBFTkFCTEUoVklE
RU8pCi0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9s
RWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1
ZGlvRWxlbWVudCIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkF1ZGlvIEVsZW1lbnQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
Ci0gICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCi0gICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlZpZGVvIEVsZW1lbnQiLCAiTWVkaWEg
Y29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRl
IEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAi
VW5NdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQi
KTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkgQnV0dG9uIiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNl
IEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAi
U2xpZGVyIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiU2xpZGVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChu
YW1lID09ICJTbGlkZXJUaHVtYiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNsaWRlciBUaHVtYiIsICJNZWRpYSBjb250cm9sbGVyIGVs
ZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV3aW5kIEJ1dHRvbiIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlJldHVybiB0byBSZWFsLXRpbWUgQnV0dG9uIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQot
ICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJF
bGFwc2VkIFRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWluaW5nIFRpbWUiLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQotICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdGF0dXMg
RGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAi
RnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkZ1bGxzY3JlZW4gQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgRm9y
d2FyZCBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUg
PT0gIlNlZWtCYWNrQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBCYWNrIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLQotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3Qg
U3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQotICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBl
bGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAg
ICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8g
ZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29u
dHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIGF1
ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9
PSAiVW5NdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkJlZ2luIHBsYXliYWNr
IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJQYXVzZUJ1
dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlBhdXNlIHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAg
IGlmIChuYW1lID09ICJTbGlkZXIiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNb3ZpZSB0aW1lIHNjcnViYmVyIiwgIk1lZGlhIGNvbnRy
b2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCi0gICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRp
bWUgc2NydWJiZXIgdGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYg
KG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJld2luZCBtb3ZpZSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCi0g
ICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJl
dHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbC10aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1v
dmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0g
IlRpbWVSZW1haW5pbmdEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWluaW5nIG1vdmllIHRpbWUiLCAiTWVkaWEgY29u
dHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQotICAg
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJy
ZW50IG1vdmllIHN0YXR1cyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAo
bmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkgbW92aWUgaW4gZnVsbC1zY3JlZW4gbW9k
ZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0Zv
cndhcmRCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgYmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQotICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgZm9y
d2FyZCIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLQotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQotewotICAg
IGlmICghaXNmaW5pdGUodGltZSkpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkluZGVmaW5pdGUgdGltZSIsICJNZWRpYSB0aW1lIGRlc2Ny
aXB0aW9uIik7Ci0KLSAgICBpbnQgc2Vjb25kcyA9IChpbnQpZmFic2YodGltZSk7Ci0gICAgaW50
IGRheXMgPSBzZWNvbmRzIC8gKDYwICogNjAgKiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25k
cyAvICg2MCAqIDYwKTsKLSAgICBpbnQgbWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0g
ICAgc2Vjb25kcyAlPSA2MDsKLQotICAgIGlmIChkYXlzKQotICAgICAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBkYXlzICUyIGhvdXJzICUzIG1p
bnV0ZXMgJTQgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKGRheXMpLmFy
Zyhob3VycykuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKLQotICAgIGlmIChob3VycykKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEg
aG91cnMgJTIgbWludXRlcyAlMyBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5h
cmcoaG91cnMpLmFyZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7Ci0KLSAgICBpZiAobWludXRlcykK
LSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
JTEgbWludXRlcyAlMiBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcobWlu
dXRlcykuYXJnKHNlY29uZHMpOwotCi0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiJTEgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIiku
YXJnKHNlY29uZHMpOwotfQotCi0jZWxzZSAvLyBFTkFCTEUoVklERU8pCi0vLyBGSVhNRTogI2lm
IEVOQUJMRShWSURFTykgc2hvdWxkIGJlIGluIHRoZSBiYXNlIGNsYXNzCi0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25z
dCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChj
b25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0
IHRpbWUpCi17Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFZJ
REVPKQotCi0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VW
YWx1ZU1pc3NpbmdUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBT
dHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVz
c2FnZVR5cGVNaXNtYXRjaFRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRp
b25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLQogLy8gVmlzaXRl
ZExpbmtTdHJhdGVneQogCiBib29sIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojppc0xpbmtWaXNpdGVk
KFBhZ2UqIHBhZ2UsIExpbmtIYXNoIGhhc2gsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IEF0
b21pY1N0cmluZyYgYXR0cmlidXRlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCmluZGV4IDhkMzRkYzBiYzBmODgx
OWYzZmE4MDU1ZmZhMjY2YmFkZmMyMGVmMDguLjlkZDdlNzljZmQyMzdmZDg0NDlmMzk4Njk5YmQy
YjhiNzhlNjUyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzUXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKgpAQCAtMjksNyArMjksNiBAQAogI2RlZmluZSBQbGF0Zm9ybVN0cmF0ZWdpZXNR
dF9oCiAKICNpbmNsdWRlIDxDb29raWVzU3RyYXRlZ3kuaD4KLSNpbmNsdWRlIDxMb2NhbGl6YXRp
b25TdHJhdGVneS5oPgogI2luY2x1ZGUgPFBsYXRmb3JtU3RyYXRlZ2llcy5oPgogI2luY2x1ZGUg
PFBsdWdpblN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8VmlzaXRlZExpbmtTdHJhdGVneS5oPgpAQCAt
MzksNyArMzgsNyBAQCBjbGFzcyBQYWdlOwogY2xhc3MgUGFzdGVib2FyZFN0cmF0ZWd5OwogfQog
Ci1jbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVN0
cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5LCBwcml2YXRlIFdlYkNv
cmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OkxvY2FsaXphdGlvblN0cmF0ZWd5
LCBwcml2YXRlIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kgeworY2xhc3MgUGxhdGZvcm1T
dHJhdGVnaWVzUXQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzLCBwcml2YXRl
IFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpQbHVnaW5TdHJhdGVn
eSwgcHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CiAKQEAgLTQ5LDcgKzQ4LDYgQEAgcHJpdmF0ZToKICAg
ICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkNv
b2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBXZWJD
b3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKTsKLSAgICB2aXJ0dWFs
IFdlYkNvcmU6OkxvY2FsaXphdGlvblN0cmF0ZWd5KiBjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVn
eSgpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlz
aXRlZExpbmtTdHJhdGVneSgpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0
ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKTsKICAgICAKQEAgLTYwLDEwMSArNTgsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWZyZXNoUGx1Z2lucygpOwogICAgIHZpcnR1
YWwgdm9pZCBnZXRQbHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2UqLCBWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4mKTsKIAotICAgIC8vIFdlYkNvcmU6OkxvY2FsaXphdGlvblN0cmF0ZWd5
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0Ns
aXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
bkltYWdlSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5k
b3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcm
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCk7
Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFy
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01l
bnUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVs
bGluZ1BhbmVsKGJvb2wgc2hvdyk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDaGVja1NwZWxsaW5nKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24o
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVm
dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVs
ZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5W
aWRlb0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29u
dHJvbHMoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFNdXRlKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51
Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1l
bnVSZWNlbnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1l
bnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhX
ZWJBcmVhVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhMaW5rVGV4dCgpOwotICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhMaXN0TWFya2VyVGV4dCgpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYSGVh
ZGluZ1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJt
VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRp
b25UZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBBWExpbmtBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBtaXNzaW5nUGx1
Z2luVGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKTsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQg
bnVtYmVyT2ZGaWxlcyk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB1bmtub3duRmlsZVNpemVU
ZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFdURjo6U3Ry
aW5nJiBmaWxlbmFtZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBX
VEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hU
ZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdU
ZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5k
ZXJmbG93VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZU92ZXJmbG93VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7Ci0KICAgICAvLyBXZWJDb3JlOjpWaXNpdGVkTGlua1N0
cmF0ZWd5CiAgICAgdmlydHVhbCBib29sIGlzTGlua1Zpc2l0ZWQoV2ViQ29yZTo6UGFnZSosIFdl
YkNvcmU6OkxpbmtIYXNoLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNlVVJMLCBjb25zdCBXVEY6
OkF0b21pY1N0cmluZyYgYXR0cmlidXRlVVJMKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkVmlzaXRl
ZExpbmsoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0Uu
aCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
V2luQ0UuaAppbmRleCA5MmQzN2RjNjUzNjJhOTU1ZTYxYzA5YTVmYjM2MWVjZWI1ZmNlM2EwLi40
N2IwZTM0MjVjN2M0YjY2Y2E3ODQ3ZjgyZTc1OGI2YzFlMjMzMjJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgK
KysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdp
ZXNXaW5DRS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjZGVmaW5lIFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFX2gKIAogI2luY2x1ZGUgIkNvb2tpZXNTdHJhdGVneS5oIgotI2luY2x1ZGUgIkxvY2FsaXph
dGlvblN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0cmF0ZWd5LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127909</attachid>
            <date>2012-02-20 20:51:08 -0800</date>
            <delta_ts>2012-02-20 22:37:58 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78324-20120220205106.patch</filename>
            <type>text/plain</type>
            <size>196575</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODI5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAyLTIwICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBHZXQgcmlkIG9mIHRo
ZSBMb2NhbGl6YXRpb25TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzgzMjQKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgor
CisgICAgICAgIFJlbW92ZSBMb2NhbGl6YXRpb25TdHJhdGVneSBhbmQgdW5pZnkgdGhlIGxvY2Fs
aXphdGlvbiBiZWhpbmQKKyAgICAgICAgTG9jYWxpemVkU3RyaW5ncy5oIGFuZCBMb2NhbGl6ZWRT
dHJpbmdzLmNwcC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRl
cjoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU3Ry
YXRlZ2llcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llczo6
UGxhdGZvcm1TdHJhdGVnaWVzKToKKyAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llcyk6CisgICAg
ICAgICogcGxhdGZvcm0vcXQvTG9jYWxpemVkU3RyaW5nc1F0LmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAuCisK
IDIwMTItMDItMjAgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgRGVmYXVsdCBjYW52YXMgYmFja2luZyBzdG9yZSB0byBiZSAxOjEgd2l0aCBzcGVj
aWZpZWQgZGltZW5zaW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDgy
OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTA2Myw3ICsxMDYzLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0NvbnRl
bnRUeXBlLmNwcAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAogICAgIHBsYXRm
b3JtL0RhdGVDb21wb25lbnRzLmNwcAotICAgIHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneS5jcHAKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5jcHAKICAgICBwbGF0Zm9ybS9EcmFn
SW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEwODI5MykKKysrIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI4NDEsOCArMjg0MSw2IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RyYWdEYXRhLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkJKHJldmlzaW9uIDEwODI5MykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdv
cmtpbmcgY29weSkKQEAgLTEwNDIsNyArMTA0Miw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRm
b3JtL0NvbnRlbnRUeXBlLmNwcCBcCiAgICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
IFwKICAgICBwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgXAotICAgIHBsYXRmb3JtL0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgXAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcCBc
CiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIu
Y3BwIFwKQEAgLTExNzYsNyArMTE3NSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL1VV
SUQuY3BwIFwKICAgICBwbGF0Zm9ybS9XaWRnZXQuY3BwIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwIFwKLSAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBcCiAg
ICAgcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHAgXAogICAgIHBsdWdpbnMvUGx1Z2luRGF0
YWJhc2UuY3BwIFwKICAgICBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcCBcCkBAIC0yMTAwLDcgKzIw
OTgsNiBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudS5oIFwKICAgICBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIFwKICAgICBwbGF0Zm9ybS9EYXRlQ29tcG9uZW50
cy5oIFwKLSAgICBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBcCiAgICAg
cGxhdGZvcm0vRHJhZ0RhdGEuaCBcCiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmggXAogICAgIHBs
YXRmb3JtL0ZpbGVDaG9vc2VyLmggXApAQCAtMjg0NCw2ICsyODQxLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgcGxhdGZvcm0vcXQvU291bmRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0xvZ2dpbmdR
dC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0xhbmd1YWdlUXQuY3BwIFwKKyAgICBwbGF0Zm9ybS9x
dC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9UZW1wb3JhcnlMaW5r
U3R1YnNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJvdW5kYXJpZXNRdC5jcHAg
XAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNw
cCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTA4MjkzKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU0OCw3ICs1NDgsNiBA
QCBfX1pON1dlYkNvcmUxN1JlZ3VsYXJFeHByZXNzaW9uRDFFdgogX19aTjdXZWJDb3JlMTdjYWNo
ZURPTVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTjNKU0M5U3RydWN0dXJlRVBL
TlMyXzlDbGFzc0luZm9FCiBfX1pON1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVJLTjNXVEY2
U3RyaW5nRVJpCiBfX1pON1dlYkNvcmUxOEhUTUxDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhE
b2N1bWVudEUKLV9fWk43V2ViQ29yZTE4UGxhdGZvcm1TdHJhdGVnaWVzMjZjcmVhdGVMb2NhbGl6
YXRpb25TdHJhdGVneUV2CiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtUGFzdGVib2FyZDEzYnVmZmVy
Rm9yVHlwZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJk
MTNzdHJpbmdGb3JUeXBlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBh
c3RlYm9hcmQxOXNldFBhdGhuYW1lc0ZvclR5cGVFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdF
TG0wRUVFUktTM18KQEAgLTE0OTEsNyArMTQ5MCw2IEBAIF9fWk5LN1dlYkNvcmU5VHJlZVNjb3Bl
MTRnZXRFbGVtZW50QnlJZEUKIF9fWlRWTjdXZWJDb3JlMTJDaHJvbWVDbGllbnRFCiBfX1pUVk43
V2ViQ29yZTE2SWNvbkRhdGFiYXNlQmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRlckNs
aWVudEUKLV9fWlRWTjdXZWJDb3JlMThQbGF0Zm9ybVN0cmF0ZWdpZXNFCiBfX1pUVk43V2ViQ29y
ZTI1SGlzdG9yeVByb3BlcnR5TGlzdFdyaXRlckUKIF9fWlRWTjdXZWJDb3JlMjhJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOFNldHRpbmdzRQogX2ZpbGVuYW1lQnlGaXhpbmdJbGxlZ2FsQ2hh
cmFjdGVycwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA4MjkzKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsNyArMjUyLDYgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vQ3Vyc29yLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0RhdGVDb21wb25lbnRz
LmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EcmFnRGF0YS5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9EcmFnSW1hZ2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmlsZUNob29zZXIuaCcs
CkBAIC0yNjgsNyArMjY3LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9MZW5ndGhCb3guaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vTGVuZ3RoU2l6ZS5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9MaW5rSGFzaC5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJh
dGVneS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0xvZ2dpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmgnLApAQCAtMjc0Niw3ICsyNzQ0LDYgQEAKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9D
dXJzb3IuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAnLAot
ICAgICAgICAgICAgJ3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL0RyYWdEYXRhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vRHJhZ0ltYWdlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRXZlbnRMb29wLmgnLApA
QCAtMjc3MCw3ICsyNzY3LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9MYW5ndWFnZS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xlbmd0aC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0xpbmtIYXNoLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xvZ2dpbmcuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIJKHJldmlz
aW9uIDEwODI5MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIJKHdvcmtpbmcgY29w
eSkKQEAgLTUzMjksOSArNTMyOSw2IEBAIF9fWk5LN1dlYkNvcmUxOUFjY2Vzc2liaWxpdHlPYmpl
Y3QxNWlzTWUKIC1bQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXQog
X19aTjdXZWJDb3JlMTNBWEhlYWRpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTIxaGFzUGxhdGZvcm1T
dHJhdGVnaWVzRXYKLV9fWk43V2ViQ29yZTE4UGxhdGZvcm1TdHJhdGVnaWVzMjZjcmVhdGVMb2Nh
bGl6YXRpb25TdHJhdGVneUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneUMxRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MTNBWEhl
YWRpbmdUZXh0RXYKIF9fWk5LN1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q0c2l6
ZUV2CiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MTFlbGVtZW50UmVj
dEV2CiBfX1pOSzdXZWJDb3JlMTlBY2Nlc3NpYmlsaXR5T2JqZWN0MTNpc1JhZGlvQnV0dG9uRXYK
QEAgLTY2ODAsNyArNjY3Nyw2IEBAIF9fWk5LN1dlYkNvcmUxNERvY3VtZW50TG9hZGVyMjVpc0xv
YWRpbmcKIF9fWk5LN1dlYkNvcmU0S1VSTDE3bGFzdFBhdGhDb21wb25lbnRFdgogX19aTjdXZWJD
b3JlMjRkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxMGltYWdlVGl0bGVFUktOM1dURjZTdHJpbmdFUktOU183SW50U2l6ZUUKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MTBpbWFnZVRpdGxlRVJLTjNXVEY2U3RyaW5n
RVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmVMMjFmb3JtYXRMb2NhbGl6ZWRTdHJpbmdFTjNX
VEY2U3RyaW5nRXoKIF9fWk43V2ViQ29yZThEb2N1bWVudDhzZXRUaXRsZUVSS04zV1RGNlN0cmlu
Z0UKIF9fWk43V2ViQ29yZThEb2N1bWVudDRoZWFkRXYKQEAgLTY3MzAsNyArNjcyNiw2IEBAIF9f
Wk43V2ViQ29yZTE2SlNIVE1MUHJlRWxlbWVudDE1Y3JlYXRlUHIKIF9fWk43V2ViQ29yZTE2SlNI
VE1MUHJlRWxlbWVudEMxRVBOM0pTQzlTdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RF
TjNXVEYxMFBhc3NSZWZQdHJJTlNfMTRIVE1MUHJlRWxlbWVudEVFRQogX19aTjdXZWJDb3JlMTJj
YWNoZVdyYXBwZXJJTlNfMTRIVE1MUHJlRWxlbWVudEVFRXZQTlNfMTVET01XcmFwcGVyV29ybGRF
UFRfUE5TXzEySlNET01XcmFwcGVyRQogX19aTjdXZWJDb3JlMTNBWFdlYkFyZWFUZXh0RXYKLV9f
Wk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MTNBWFdlYkFyZWFUZXh0RXYK
IF9fWk43V2ViQ29yZTEwUmVuZGVyVmlldzEzYWJzb2x1dGVRdWFkc0VSTjNXVEY2VmVjdG9ySU5T
XzlGbG9hdFF1YWRFTG0wRUVFCiBfX1pON1dlYkNvcmUyNUFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QxNmdldERvY3VtZW50TGlua3NFUk4zV1RGNlZlY3RvcklOUzFfNlJlZlB0cklOU18xOUFjY2Vz
c2liaWxpdHlPYmplY3RFRUVMbTBFRUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDVsaW5rc0V2CkBA
IC02NzQwLDcgKzY3MzUsNiBAQCBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0CiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0MjRlc3RpbWF0ZWRM
b2FkaW5nUHJvZ3Jlc3NFdgogX19aTks3V2ViQ29yZTE1UHJvZ3Jlc3NUcmFja2VyMTdlc3RpbWF0
ZWRQcm9ncmVzc0V2CiBfX1pON1dlYkNvcmUxMEFYTGlua1RleHRFdgotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxMEFYTGlua1RleHRFdgogX19aTjdXZWJDb3JlMTJS
ZW5kZXJJbmxpbmUyNWN1bGxlZElubGluZUFic29sdXRlUmVjdHNFUEtTMF9STjNXVEY2VmVjdG9y
SU5TXzdJbnRSZWN0RUxtMEVFRVJLTlNfN0ludFNpemVFCiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0MTlpbnRlcm5hbExpbmtFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUx
N0hUTUxBbmNob3JFbGVtZW50NGhyZWZFdgpAQCAtNjg5MSw5ICs2ODg1LDcgQEAgX19aTks3V2Vi
Q29yZTEzSFRNTEhSRWxlbWVudDIzY2FuQ29udGFpbgogX19aTks3V2ViQ29yZTE3QWNjZXNzaWJp
bGl0eUxpc3QxM2lzT3JkZXJlZExpc3RFdgogX19aTks3V2ViQ29yZTE3QWNjZXNzaWJpbGl0eUxp
c3QxNmlzRGVmaW5pdGlvbkxpc3RFdgogX19aTjdXZWJDb3JlMjRBWERlZmluaXRpb25MaXN0VGVy
bVRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNEFYRGVm
aW5pdGlvbkxpc3RUZXJtVGV4dEV2CiBfX1pON1dlYkNvcmUzMEFYRGVmaW5pdGlvbkxpc3REZWZp
bml0aW9uVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMw
QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0RXYKIF9fWk43V2ViQ29yZTE5SFRNTEZpZWxk
U2V0RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTE3SFRNTExlZ2VuZEVsZW1lbnREMEV2CiBfX1pO
N1dlYkNvcmVMMTZ2aWRlb0NvbnN0cnVjdG9yRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9j
dW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RWIKQEAgLTcxODIsNyArNzE3NCw2IEBAIF9fWlRo
bjEyMF9ON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQzMG0KIF9fWk43V2ViQ29yZTExTWVkaWFQ
bGF5ZXIxMm5ldHdvcmtTdGF0ZUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxNXNl
dE5ldHdvcmtTdGF0ZUVOU18xMU1lZGlhUGxheWVyMTJOZXR3b3JrU3RhdGVFCiBfX1pON1dlYkNv
cmUyOG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kyOG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHRFdgogX19a
TjdXZWJDb3JlMzRNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDMTljcmVhdGVBVkFz
c2V0Rm9yVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMzBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24xN3NldERlbGF5Q2FsbGJhY2tzRWIKIF9fWkwzOGluaXRBVlVSTEFzc2V0
UmVmZXJlbmNlUmVzdHJpY3Rpb25zS2V5dgpAQCAtNzQxNyw3ICs3NDA4LDYgQEAgX19aTks3V2Vi
Q29yZTM1QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbAogX19aTks3V2ViQ29yZTM1QWNjZXNzaWJp
bGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIyNGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkV2CiBf
X1pOSzdXZWJDb3JlMzVBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjE1ZWxlbWVu
dFR5cGVOYW1lRXYKIF9fWk43V2ViQ29yZTM0bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0
cmluZ0VSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MzRsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTVEeW5hbWljTm9kZUxpc3QxNWludmFsaWRhdGVDYWNoZUV2CiBfX1pO
SzdXZWJDb3JlMjRNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQyMWlzTWVkaWFDb250cm9sRWxlbWVu
dEV2CiBfX1pOSzdXZWJDb3JlMjVBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sMjJhY2Nlc3NpYmls
aXR5SXNJZ25vcmVkRXYKQEAgLTc1NTQsMTQgKzc1NDQsMTIgQEAgX19aTjdXZWJDb3JlMjNSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbDE0cwogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbDE3dXBkYXRlRnJvbUVsZW1lbnRFdgogX19aTjdXZWJDb3JlMThTaGFkb3dJbnB1dEVsZW1l
bnQ2Y3JlYXRlRVBOU18xMUhUTUxFbGVtZW50RQogX19aTjdXZWJDb3JlMjVmaWxlQnV0dG9uQ2hv
b3NlRmlsZUxhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
MjVmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsRXYKIF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxMnZh
bHVlQ2hhbmdlZEV2CiBfX1pON1dlYkNvcmUyMkhUTUxGb3JtQ29udHJvbEVsZW1lbnQxMXNldERp
c2FibGVkRWIKIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wyOWNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzRXYKIF9fWk5LN1dlYkNvcmUxM0ZpbGVJbnB1dFR5cGUxMmlz
RmlsZVVwbG9hZEV2CiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTFwYWlu
dE9iamVjdEVSTlNfOVBhaW50SW5mb0VpaQogX19aTjdXZWJDb3JlMjlmaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTI5ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJP
YmplY3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk43V2ViQ29yZTExUmVuZGVyQmxv
Y2sxM2Fic29sdXRlUmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFRUVpaQogX19a
VGhuOF9ON1dlYkNvcmUxOUhUTUxUZXh0QXJlYUVsZW1lbnREMEV2CkBAIC03ODE3LDEwICs3ODA1
LDcgQEAgX19aTjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMQogX19aTjNXVEY5
SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2ViQ29yZTIxRWRpdG9ySW50ZXJu
YWxDb21tYW5kRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTN19FRU5TXzE1Q2FzZUZvbGRpbmdI
YXNoRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSVMxX0VFTlNDX0lTNl9FRUVF
U0RfRTZsb29rdXBJUzFfTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySVMxX1M3X1NBX0VFRUVQ
UzdfUktUXwogX19aTjNXVEY5SGFzaFRhYmxlSU5TXzZTdHJpbmdFU3Q0cGFpcklTMV9QS043V2Vi
Q29yZTIxRWRpdG9ySW50ZXJuYWxDb21tYW5kRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTN19F
RU5TXzE1Q2FzZUZvbGRpbmdIYXNoRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRz
SVMxX0VFTlNDX0lTNl9FRUVFU0RfRTZyZWhhc2hFaQogX19aTjdXZWJDb3JlMzVjb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uc0ViCi1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTZzaGFyZWRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zRWIKIF9fWk43V2Vi
Q29yZTM1Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWxFYgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVs
bGluZ1BhbmVsRWIKIF9fWk43V2ViQ29yZUwyMmNlbnRlclRydW5jYXRlVG9CdWZmZXJFUktOM1dU
RjZTdHJpbmdFampQdAogX19aTjdXZWJDb3JlMTFpc1RleHRCcmVha0VQTlNfMTdUZXh0QnJlYWtJ
dGVyYXRvckVpCiBfX1pON1dlYkNvcmUxNVNRTGl0ZVN0YXRlbWVudDhiaW5kTnVsbEVpCkBAIC0x
MTk1MCw3ICsxMTkzNSw2IEBAIF9fWk43V2ViQ29yZTIyanNIVE1MQ29sbGVjdGlvbkxlbmd0aEVQ
TjMKIF9fWk5LN1dlYkNvcmUxN0hUTUxPYmplY3RFbGVtZW50MThjb250YWluc0phdmFBcHBsZXRF
dgogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDMwc2V0U2hvd3NNaXNzaW5nUGx1
Z2luSW5kaWNhdG9yRXYKIF9fWk43V2ViQ29yZTE3bWlzc2luZ1BsdWdpblRleHRFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxN21pc3NpbmdQbHVnaW5UZXh0RXYK
IF9fWk43V2ViQ29yZTIwUmVuZGVyRW1iZWRkZWRPYmplY3QxM3BhaW50UmVwbGFjZWRFUk5TXzlQ
YWludEluZm9FaWkKIF9fWk43V2ViQ29yZTIwUmVuZGVyRW1iZWRkZWRPYmplY3QyNmdldFJlcGxh
Y2VtZW50VGV4dEdlb21ldHJ5RWlpUk5TXzlGbG9hdFJlY3RFUk5TXzRQYXRoRVMyX1JOU180Rm9u
dEVSTlNfN1RleHRSdW5FUmYKIF9fWk43V2ViQ29yZTRQYXRoMTRhZGRSb3VuZGVkUmVjdEVSS05T
XzlGbG9hdFJlY3RFUktOU185RmxvYXRTaXplRQpAQCAtMTIzNzAsNyArMTIzNTQsNiBAQCBfX1pO
N1dlYkNvcmU5SW5wdXRUeXBlMTlhbHRBdHRyaWJ1dGVDaGFuCiBfX1pOM1dURjZTdHJpbmcxMG1h
a2VTZWN1cmVFdAogX19aTjdXZWJDb3JlOUlucHV0VHlwZTI3c2hvdWxkUmVzcGVjdEFsaWduQXR0
cmlidXRlRXYKIF9fWk43V2ViQ29yZTE5aW5wdXRFbGVtZW50QWx0VGV4dEV2Ci1fX1pON1dlYkNv
cmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE5aW5wdXRFbGVtZW50QWx0VGV4dEV2CiBf
X1pOSzdXZWJDb3JlMTdSZW5kZXJUZXh0Q29udHJvbDM2cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2Fs
Y1Byb3BhZ2F0aW9uRXYKIF9fWk43V2ViQ29yZTMwanNIVE1MSW5wdXRFbGVtZW50RGVmYXVsdFZh
bHVlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9f
Wk43V2ViQ29yZTMyanNIVE1MSW5wdXRFbGVtZW50RGVmYXVsdENoZWNrZWRFUE4zSlNDOUV4ZWNT
dGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMTUwODYsMTEgKzE1MDY5
LDggQEAgX19aTjdXZWJDb3JlMTdIVE1MS2V5Z2VuRWxlbWVudDZjcmVhdGVFUgogX19aTjdXZWJD
b3JlMTdIVE1MS2V5Z2VuRWxlbWVudEMyRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1l
bnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdXZWJDb3JlMjBnZXRTdXBwb3J0ZWRLZXlT
aXplc0VSTjNXVEY2VmVjdG9ySU5TMF82U3RyaW5nRUxtMEVFRQogX19aTjdXZWJDb3JlMThrZXln
ZW5NZW51SXRlbTIwNDhFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kxOGtleWdlbk1lbnVJdGVtMjA0OEV2CiBfX1pON1dlYkNvcmUxOGtleWdlbk1lbnVJdGVtMTAy
NEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTE4a2V5Z2VuTWVu
dUl0ZW0xMDI0RXYKIF9fWk43V2ViQ29yZTE3a2V5Z2VuTWVudUl0ZW01MTJFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kxN2tleWdlbk1lbnVJdGVtNTEyRXYKIF9f
Wk43V2ViQ29yZTE3SFRNTFNlbGVjdEVsZW1lbnRDMkVSS05TXzEzUXVhbGlmaWVkTmFtZUVQTlNf
OERvY3VtZW50RVBOU18xNUhUTUxGb3JtRWxlbWVudEUKIF9fWk43V2ViQ29yZTE3SFRNTE9wdGlv
bkVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19a
TjdXZWJDb3JlMTNTZWxlY3RFbGVtZW50MTNkZXNlbGVjdEl0ZW1zRVJOU18xN1NlbGVjdEVsZW1l
bnREYXRhRVBOU183RWxlbWVudEVTNF8KQEAgLTE1NTcxLDYwICsxNTU1MSwzNCBAQCBfX1pON1dl
YkNvcmUxMUNvbnRleHRNZW51QzFFdgogX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudUMyRXYKIF9f
Wk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyOHBvcHVsYXRlRXYKIF9fWk43V2ViQ29y
ZTI2Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kyNmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rRXYKIF9fWk43V2Vi
Q29yZTE1Q29udGV4dE1lbnVJdGVtQzFFTlNfMTlDb250ZXh0TWVudUl0ZW1UeXBlRU5TXzE3Q29u
dGV4dE1lbnVBY3Rpb25FUktOM1dURjZTdHJpbmdFUE5TXzExQ29udGV4dE1lbnVFCiBfX1pON1dl
YkNvcmUxNUNvbnRleHRNZW51SXRlbUMyRU5TXzE5Q29udGV4dE1lbnVJdGVtVHlwZUVOU18xN0Nv
bnRleHRNZW51QWN0aW9uRVJLTjNXVEY2U3RyaW5nRVBOU18xMUNvbnRleHRNZW51RQogX19aTjdX
ZWJDb3JlTDMzY3JlYXRlUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uRU5TXzE5Q29udGV4dE1l
bnVJdGVtVHlwZUVOU18xN0NvbnRleHRNZW51QWN0aW9uRVJLTjNXVEY2U3RyaW5nRWJiCiBfX1pO
N1dlYkNvcmUzN2NvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3dFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rSW5OZXdXaW5kb3dFdgogX19aTjdXZWJDb3JlMzZjb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZExpbmtUb0Rpc2tFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kzNmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlza0V2CiBfX1pON1dlYkNvcmUz
N2NvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmRFdgotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9D
bGlwYm9hcmRFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5l
d1dpbmRvd0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4Y29u
dGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3dFdgogX19aTjdXZWJDb3JlMzdjb250
ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Mzdjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9E
aXNrRXYKIF9fWk43V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9h
cmRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzOGNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkRXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Mjdjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlFdgogX19aTjdXZWJDb3JlMjdjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZUV2CiBfX1pON1dlYkNvcmUz
N2NvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHNFdgotX19aTjdXZWJDb3JlMjdE
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
Q29udHJvbHNFdgogX19aTjdXZWJDb3JlMzNjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxv
b3BFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kzM2NvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcEV2CiBfX1pON1dlYkNvcmUzOGNvbnRleHRNZW51SXRl
bVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Mzhjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbkV2CiBf
X1pON1dlYkNvcmUzNWNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0RXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzVjb250ZXh0TWVudUl0ZW1UYWdT
ZWFyY2hJblNwb3RsaWdodEV2CiBfX1pON1dlYkNvcmUyN2NvbnRleHRNZW51SXRlbVRhZ1NlYXJj
aFdlYkV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3Y29udGV4
dE1lbnVJdGVtVGFnU2VhcmNoV2ViRXYKIF9fWk43V2ViQ29yZTIyY29udGV4dE1lbnVJdGVtVGFn
Q29weUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIyY29udGV4
dE1lbnVJdGVtVGFnQ29weUV2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ0dvQmFj
a0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI0Y29udGV4dE1l
bnVJdGVtVGFnR29CYWNrRXYKIF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3
YXJkRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjdjb250ZXh0
TWVudUl0ZW1UYWdHb0ZvcndhcmRFdgogX19aTjdXZWJDb3JlMjJjb250ZXh0TWVudUl0ZW1UYWdT
dG9wRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjJjb250ZXh0
TWVudUl0ZW1UYWdTdG9wRXYKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnUmVsb2Fk
RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRjb250ZXh0TWVu
dUl0ZW1UYWdSZWxvYWRFdgogX19aTjdXZWJDb3JlMzhjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJh
bWVJbk5ld1dpbmRvd0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTM4Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3dFdgogX19aTjdXZWJDb3Jl
MzJjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTMyY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmRF
dgogX19aTjdXZWJDb3JlMzJjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZ0V2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMyY29udGV4dE1lbnVJdGVtVGFn
SWdub3JlU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlMzFjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNw
ZWxsaW5nRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250
ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nRXYKIF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJ
dGVtVGFnSWdub3JlR3JhbW1hckV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTMxY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hckV2CiBfX1pON1dlYkNvcmUy
MWNvbnRleHRNZW51SXRlbVRhZ0N1dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTIxY29udGV4dE1lbnVJdGVtVGFnQ3V0RXYKIF9fWk43V2ViQ29yZTIzY29udGV4
dE1lbnVJdGVtVGFnUGFzdGVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kyM2NvbnRleHRNZW51SXRlbVRhZ1Bhc3RlRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RS
ZXN1bHQxN2lzQ29udGVudEVkaXRhYmxlRXYKIF9fWk5LN1dlYkNvcmUyMUNvbnRleHRNZW51Q29u
dHJvbGxlcjIxY2hlY2tPckVuYWJsZUlmTmVlZGVkRVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9f
Wk5LN1dlYkNvcmUxNUNvbnRleHRNZW51SXRlbTR0eXBlRXYKQEAgLTE1NjM4LDcgKzE1NTkyLDYg
QEAgX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDEybWVkaWFFbGVtZQogX19aTjdXZWJDb3Jl
MTVDb250ZXh0TWVudUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUyMUNvbnRleHRNZW51Q29udHJvbGxl
cjIxYWRkSW5zcGVjdEVsZW1lbnRJdGVtRXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJdGVt
VGFnSW5zcGVjdEVsZW1lbnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kzMmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUx
MUNvbnRleHRNZW51MTlwbGF0Zm9ybURlc2NyaXB0aW9uRXYKIF9fWk43V2ViQ29yZTExQ29udGV4
dE1lbnUyMnNldFBsYXRmb3JtRGVzY3JpcHRpb25FUDE0TlNNdXRhYmxlQXJyYXkKIF9fWk43V2Vi
Q29yZThEb2N1bWVudDIzYWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWRFUE5TXzROb2RlRQpAQCAtMTYy
MTAsMTYgKzE2MTYzLDExIEBAIF9fWk5LN1dlYkNvcmUxOFRleHRDaGVja2luZ0hlbHBlcjQwZ3Vl
c3MKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNHJlcGxhY2VkU3RyaW5nRXYKIF9fWk43
V2ViQ29yZUwyOXNlbGVjdGlvbkNvbnRhaW5zUG9zc2libGVXb3JkRVBOU181RnJhbWVFCiBfX1pO
N1dlYkNvcmUzMGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudUV2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMwY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdN
ZW51RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyNDBjcmVhdGVBbmRBcHBl
bmRTcGVsbGluZ0FuZEdyYW1tYXJTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43
V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ0V2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGls
ZVR5cGluZ0V2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTQyY29u
dGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nRXYKIF9fWk43V2ViQ29yZTQy
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nRXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5NDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dy
YW1tYXJXaXRoU3BlbGxpbmdFdgogX19aTjdXZWJDb3JlNDZjb250ZXh0TWVudUl0ZW1UYWdDb3Jy
ZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5NDZjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNh
bGx5RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IyMnNwZWxsaW5nUGFuZWxJc1Nob3dpbmdFdgogX19a
TjdXZWJDb3JlMTVDb250ZXh0TWVudUl0ZW04c2V0VGl0bGVFUktOM1dURjZTdHJpbmdFCiBfX1pO
N1dlYkNvcmU2RWRpdG9yMjRpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWRFdgpAQCAtMTYyMjcsNjYg
KzE2MTc1LDQxIEBAIF9fWk43V2ViQ29yZTZFZGl0b3IzNmlzQXV0b21hdGljU3BlbGxpbmcKIF9f
Wk43V2ViQ29yZTE1Q29udGV4dE1lbnVJdGVtMTBzZXRTdWJNZW51RVBOU18xMUNvbnRleHRNZW51
RQogX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudUQxRXYKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1l
bnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kzNWNvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51RXYKIF9f
Wk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMzVjcmVhdGVBbmRBcHBlbmRTdWJzdGl0
dXRpb25zU3ViTWVudUVSTlNfMTVDb250ZXh0TWVudUl0ZW1FCiBfX1pON1dlYkNvcmUzMmNvbnRl
eHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5MzJjb250ZXh0TWVudUl0ZW1UYWdTbWFydENvcHlQYXN0ZUV2CiBfX1pO
N1dlYkNvcmUyOWNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzRXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjljb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3Rl
c0V2CiBfX1pON1dlYkNvcmUyOWNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzRXYKLV9fWk43
V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjljb250ZXh0TWVudUl0ZW1UYWdT
bWFydERhc2hlc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3NF
dgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOGNvbnRleHRNZW51
SXRlbVRhZ1NtYXJ0TGlua3NFdgogX19aTjdXZWJDb3JlMzNjb250ZXh0TWVudUl0ZW1UYWdUZXh0
UmVwbGFjZW1lbnRFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kz
M2NvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudEV2CiBfX1pON1dlYkNvcmU2RWRpdG9y
MjdzdWJzdGl0dXRpb25zUGFuZWxJc1Nob3dpbmdFdgogX19aTjdXZWJDb3JlNkVkaXRvcjM1aXNB
dXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjM0
aXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU2RWRpdG9y
MzFpc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkRXYKIF9fWk43V2ViQ29yZTZFZGl0b3Iz
M2lzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZEV2CiBfX1pON1dlYkNvcmUzN2NvbnRl
eHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01lbnVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kzN2NvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9uc01l
bnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIzN2NyZWF0ZUFuZEFwcGVu
ZFRyYW5zZm9ybWF0aW9uc1N1Yk1lbnVFUk5TXzE1Q29udGV4dE1lbnVJdGVtRQogX19aTjdXZWJD
b3JlMzFjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNlRXYKLV9fWk43V2ViQ29yZTI3RGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MzFjb250ZXh0TWVudUl0ZW1UYWdNYWtlVXBwZXJDYXNl
RXYKIF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2VyQ2FzZUV2Ci1fX1pO
N1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4dE1lbnVJdGVtVGFn
TWFrZUxvd2VyQ2FzZUV2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxp
emVFdgotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOGNvbnRleHRN
ZW51SXRlbVRhZ0NhcGl0YWxpemVFdgogX19aTjdXZWJDb3JlMjZjb250ZXh0TWVudUl0ZW1UYWdG
b250TWVudUV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI2Y29u
dGV4dE1lbnVJdGVtVGFnRm9udE1lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRy
b2xsZXIyNmNyZWF0ZUFuZEFwcGVuZEZvbnRTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUK
IF9fWk43V2ViQ29yZTI3Y29udGV4dE1lbnVJdGVtVGFnU2hvd0ZvbnRzRXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjdjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9u
dHNFdgogX19aTjdXZWJDb3JlMjJjb250ZXh0TWVudUl0ZW1UYWdCb2xkRXYKLV9fWk43V2ViQ29y
ZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjJjb250ZXh0TWVudUl0ZW1UYWdCb2xkRXYK
IF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYKLV9fWk43V2ViQ29yZTI3
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5MjRjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWNFdgog
X19aTjdXZWJDb3JlMjdjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmVFdgotX19aTjdXZWJDb3Jl
MjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyN2NvbnRleHRNZW51SXRlbVRhZ1VuZGVybGlu
ZUV2CiBfX1pON1dlYkNvcmUyNWNvbnRleHRNZW51SXRlbVRhZ091dGxpbmVFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNWNvbnRleHRNZW51SXRlbVRhZ091dGxp
bmVFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXNFdgotX19aTjdXZWJD
b3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyNGNvbnRleHRNZW51SXRlbVRhZ1N0eWxl
c0V2CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnNFdgotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyOGNvbnRleHRNZW51SXRlbVRhZ1No
b3dDb2xvcnNFdgogX19aTjdXZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51RXYK
LV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjhjb250ZXh0TWVudUl0
ZW1UYWdTcGVlY2hNZW51RXYKIF9fWk43V2ViQ29yZTIxQ29udGV4dE1lbnVDb250cm9sbGVyMjhj
cmVhdGVBbmRBcHBlbmRTcGVlY2hTdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9fWk43
V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZ0V2Ci1fX1pON1dlYkNvcmUy
N0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTMxY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVh
a2luZ0V2CiBfX1pON1dlYkNvcmUzMGNvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZ0V2CiBf
X1pON1dlYkNvcmUzMG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlc0VSS04zV1RGNlZlY3Rv
cklOUzBfNlN0cmluZ0VMbTBFRUUKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5MzBjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmdFdgogX19aTjdXZWJDb3JlMzhj
b250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudUV2Ci1fX1pON1dlYkNvcmUyN0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM4Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVj
dGlvbk1lbnVFdgogX19aTjdXZWJDb3JlMjFDb250ZXh0TWVudUNvbnRyb2xsZXIzOGNyZWF0ZUFu
ZEFwcGVuZFdyaXRpbmdEaXJlY3Rpb25TdWJNZW51RVJOU18xNUNvbnRleHRNZW51SXRlbUUKIF9f
Wk43V2ViQ29yZTM0Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbkV2Ci1fX1pON1dl
YkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTM0Y29udGV4dE1lbnVJdGVtVGFnRGVm
YXVsdERpcmVjdGlvbkV2CiBfX1pON1dlYkNvcmUyOWNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1Jp
Z2h0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Mjljb250ZXh0
TWVudUl0ZW1UYWdMZWZ0VG9SaWdodEV2CiBfX1pON1dlYkNvcmUyOWNvbnRleHRNZW51SXRlbVRh
Z1JpZ2h0VG9MZWZ0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Mjljb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdEV2CiBfX1pOSzdXZWJDb3JlNkVkaXRvcjE2
aGFzQmlkaVNlbGVjdGlvbkV2CiBfX1pOSzdXZWJDb3JlMTNLZXlib2FyZEV2ZW50OGNoYXJDb2Rl
RXYKIF9fWk43V2ViQ29yZTE4anNET01TZWxlY3Rpb25UeXBlRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKQEAgLTE2Mjk1LDcgKzE2MjE4LDYgQEAgX19a
Tks3V2ViQ29yZTExUmVuZGVyQmxvY2syNGNvbnRhaW5zTm9uWgogX19aTks3V2ViQ29yZTE5QXBw
bHlQcm9wZXJ0eUxlbmd0aElMTlNfMTBMZW5ndGhBdXRvRTFFTE5TXzE1TGVuZ3RoSW50cmluc2lj
RTFFTE5TXzE4TGVuZ3RoTWluSW50cmluc2ljRTFFTE5TXzEwTGVuZ3RoTm9uZUUxRUxOU18xNUxl
bmd0aFVuZGVmaW5lZEUxRUUxMGFwcGx5VmFsdWVFUE5TXzE2Q1NTU3R5bGVTZWxlY3RvckVQTlNf
OENTU1ZhbHVlRQogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTExc2V0TWF4V2lkdGhFTlNfNkxl
bmd0aEUKIF9fWk43V2ViQ29yZTM2Y29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5
RVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kzNmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFyeUVSS04zV1RGNlN0cmluZ0UK
IF9fWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIyNmhhc0luc3BlY3RvckZyb250ZW5k
Q2xpZW50RXYKIF9fWk5LN1dlYkNvcmUyMUJhY2tGb3J3YXJkQ29udHJvbGxlcjE4Y2FuR29CYWNr
T3JGb3J3YXJkRWkKIF9fWk5LN1dlYkNvcmU0UGFnZTE4Y2FuR29CYWNrT3JGb3J3YXJkRWkKQEAg
LTE3MDYzLDcgKzE2OTg1LDYgQEAgX19aTjdXZWJDb3JlMTRTVkdTTUlMRWxlbWVudDIwZGlzY29u
bmVjdAogX19aTjdXZWJDb3JlMTdTTUlMVGltZUNvbnRhaW5lcjEwdW5zY2hlZHVsZUVQTlNfMTRT
VkdTTUlMRWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxN1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDEwcmVuZGVyTmFtZUV2CiBfX1pON1dlYkNvcmUyN3NlYXJjaGFibGVJbmRleEludHJvZHVjdGlv
bkV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTI3c2VhcmNoYWJs
ZUluZGV4SW50cm9kdWN0aW9uRXYKIF9fWk43V2ViQ29yZTE0UmVuZGVyUnVieVRleHRDMUVQTlNf
NE5vZGVFCiBfX1pOSzdXZWJDb3JlMTNSZW5kZXJSdWJ5UnVuMTFoYXNSdWJ5VGV4dEV2CiBfX1pO
SzdXZWJDb3JlMTRSZW5kZXJSdWJ5VGV4dDEwaXNSdWJ5VGV4dEV2CkBAIC0xODk2OSw3ICsxODg5
MCw2IEBAIF9fWk43V2ViQ29yZThMb2NhdGlvbjdzZXRIcmVmRVJLTjNXVEY2U3QKIF9fWk43V2Vi
Q29yZTE3U3R5bGVQZW5kaW5nSW1hZ2UxMnJlbW92ZUNsaWVudEVQTlNfMTJSZW5kZXJPYmplY3RF
CiBfX1pON1dlYkNvcmUxNVN1Ym1pdElucHV0VHlwZTEyZGVmYXVsdFZhbHVlRXYKIF9fWk43V2Vi
Q29yZTI0c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsRXYKLV9fWk43V2ViQ29yZTI3RGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5MjRzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWxFdgogX19aTks3V2Vi
Q29yZTExUmVuZGVyVGFibGUyMGZpcnN0TGluZUJveEJhc2VsaW5lRXYKIF9fWk5LN1dlYkNvcmUx
OFJlbmRlclRhYmxlU2VjdGlvbjIwZmlyc3RMaW5lQm94QmFzZWxpbmVFdgogX19aTks3V2ViQ29y
ZTE1UmVuZGVyV29yZEJyZWFrMTByZW5kZXJOYW1lRXYKQEAgLTE5NDU1LDcgKzE5Mzc1LDYgQEAg
X19aTjdXZWJDb3JlTDIyVG9wR3JhZGllbnRJbnRlcnBvbGF0ZUVQdgogX19aTjdXZWJDb3JlTDI1
Qm90dG9tR3JhZGllbnRJbnRlcnBvbGF0ZUVQdlBLZFBkCiBfX1pON1dlYkNvcmUxNFJlc2V0SW5w
dXRUeXBlMTJkZWZhdWx0VmFsdWVFdgogX19aTjdXZWJDb3JlMjNyZXNldEJ1dHRvbkRlZmF1bHRM
YWJlbEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTIzcmVzZXRC
dXR0b25EZWZhdWx0TGFiZWxFdgogX19aTjdXZWJDb3JlMTJVUkxJbnB1dFR5cGU2Y3JlYXRlRVBO
U18xNkhUTUxJbnB1dEVsZW1lbnRFCiBfX1pOSzdXZWJDb3JlMTJVUkxJbnB1dFR5cGUxNWZvcm1D
b250cm9sVHlwZUV2CiBfX1pON1dlYkNvcmUxNElucHV0VHlwZU5hbWVzM3VybEV2CkBAIC0yNTIy
MSw3ICsyNTE0MCw2IEBAIF9fWk43V2ViQ29yZTEzSlNFdmVudFNvdXJjZUQxRXYKIF9fWk43V2Vi
Q29yZTExRXZlbnRTb3VyY2VEMEV2CiBfX1pOSzNKU0MxNEpTR2xvYmFsT2JqZWN0MTRpc0dsb2Jh
bE9iamVjdEV2CiBfX1pON1dlYkNvcmUyMm11bHRpcGxlRmlsZVVwbG9hZFRleHRFagotX19aTjdX
ZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kyMm11bHRpcGxlRmlsZVVwbG9hZFRl
eHRFagogX19aTjdXZWJDb3JlMTdSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gyMmNhbGNWZXJ0
aWNhbFByZWZXaWR0aHNFdgogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTE1c2V0Qm94RmxleEdy
b3VwRWoKIF9fWk5LN1dlYkNvcmUxM1JlbmRlckxpc3RCb3gxMHJlbmRlck5hbWVFdgpAQCAtMjU0
OTgsNyArMjU0MTYsNiBAQCBfX1pON1dlYkNvcmUyMkhUTUxGb3JtQ29udHJvbEVsZW1lbnQzMHVw
CiBfX1pOSzdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTZ2YWx1ZU1pc3NpbmdUZXh0RXYKIF9f
Wk5LN1dlYkNvcmU5SW5wdXRUeXBlMTZ2YWx1ZU1pc3NpbmdUZXh0RXYKIF9fWk43V2ViQ29yZTMz
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0RXYKLV9fWk43V2ViQ29yZTI3RGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5MzN2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHRF
dgogX19aTjdXZWJDb3JlMTdWYWxpZGF0aW9uTWVzc2FnZTZjcmVhdGVFUE5TXzIxRm9ybUFzc29j
aWF0ZWRFbGVtZW50RQogX19aTjdXZWJDb3JlMTdWYWxpZGF0aW9uTWVzc2FnZTEwc2V0TWVzc2Fn
ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTVUaW1lcklOU18xN1ZhbGlkYXRpb25NZXNz
YWdlRUU1ZmlyZWRFdgpAQCAtMjU2MDgsMTEgKzI1NTI1LDkgQEAgX19aTjdXZWJDb3JlNDR2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzcwogX19aTks3V2ViQ29yZTE0UmFkaW9JbnB1dFR5cGUxNnZh
bHVlTWlzc2luZ1RleHRFdgogX19aTjdXZWJDb3JlNDF2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ0ZvclJhZGlvVGV4dEV2CiBfX1pON1dlYkNvcmUzNnZhbGlkYXRpb25NZXNzYWdlUGF0dGVy
bk1pc21hdGNoVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTM2dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0RXYKIF9fWk5LN1dlYkNvcmUx
NkhUTUxJbnB1dEVsZW1lbnQxNnR5cGVNaXNtYXRjaFRleHRFdgogX19aTks3V2ViQ29yZTE0RW1h
aWxJbnB1dFR5cGUxNnR5cGVNaXNtYXRjaFRleHRFdgogX19aTjdXZWJDb3JlNDF2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTMzdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0RXYK
IF9fWk43V2ViQ29yZTM4anNIVE1MRmllbGRTZXRFbGVtZW50VmFsaWRhdGlvbk1lc3NhZ2VFUE4z
SlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJD
b3JlMzZqc0hUTUxLZXlnZW5FbGVtZW50VmFsaWRhdGlvbk1lc3NhZ2VFUE4zSlNDOUV4ZWNTdGF0
ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMzNqc0hUTUxG
aWVsZFNldEVsZW1lbnRXaWxsVmFsaWRhdGVFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVF
UktOUzBfMTBJZGVudGlmaWVyRQpAQCAtMjg2MTEsNyArMjg1MjYsNiBAQCBfX1pON1dlYkNvcmUx
MUZyYW1lTG9hZGVyMjJmaW5kRnJhbWVGb3JOCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9i
amVjdDIzdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pON1dlYkNv
cmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MzBzZXRTaG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3JF
dgogX19aTjdXZWJDb3JlMTdjcmFzaGVkUGx1Z2luVGV4dEV2Ci1fX1pON1dlYkNvcmUyN0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTE3Y3Jhc2hlZFBsdWdpblRleHRFdgogX19aTjdXZWJDb3Jl
MTZTY3JpcHRDb250cm9sbGVyMTFjcmVhdGVXb3JsZEV2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3Vw
MjBhZGRVc2VyU2NyaXB0VG9Xb3JsZEVQTlNfMTVET01XcmFwcGVyV29ybGRFUktOM1dURjZTdHJp
bmdFUktOU180S1VSTEVOUzNfMTBQYXNzT3duUHRySU5TM182VmVjdG9ySVM0X0xtMEVFRUVFU0Rf
TlNfMjNVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUVOU18yNVVzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXNFCiBfX1pON1dlYkNvcmUxMFVzZXJTY3JpcHRDMkVSS04zV1RGNlN0cmluZ0VSS05TXzRLVVJM
RU5TMV8xMFBhc3NPd25QdHJJTlMxXzZWZWN0b3JJUzJfTG0wRUVFRUVTQl9OU18yM1VzZXJTY3Jp
cHRJbmplY3Rpb25UaW1lRU5TXzI1VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lc0UKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAx
MDgyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
d29ya2luZyBjb3B5KQpAQCAtMjY2MTgsMTQgKzI2NjE4LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXERy
YWdEYXRhLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNjc2NiwxMCArMjY3NTgsNiBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxMb2NhbGl6YXRpb25TdHJhdGVneS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxMb2NhbGl6ZWRTdHJpbmdzLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDgyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTUxNjIs
NyArNTE2Miw2IEBACiAJCUJDNUE4NkI2MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1QTg2
QjQwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9uLmggKi87IH07CiAJCUJDNUM3NjJB
MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUM3NjI4MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQ
bGF0Zm9ybUV2ZW50LmNwcCAqLzsgfTsKIAkJQkM1Qzc2MkIxNDk3RkUxNDAwQkM0Nzc1IC8qIFBs
YXRmb3JtRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkM1Q0ZDQTkxMUY3OTMz
MjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVDRkNBODExRjc5MzMyMDA5OUVEMDkgLyogTG9j
YWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzVFQjVEQjBFODFCN0VBMDBCMjU5NjUgLyogQm9yZGVyVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURBMEU4
MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNUVCNUREMEU4MUI4REQwMEIyNTk2NSAvKiBPdXRs
aW5lVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNUVCNURDMEU4MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzVFQjVERjBFODFCOUFCMDBC
MjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVCNURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBz
ZWRCb3JkZXJWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC01MzY2LDggKzUzNjUsNiBAQAogCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcg
LyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi87IH07
CiAJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0Uy
QTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLzsgfTsKIAkJQkNDMDY1OEEwRjND
RTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJDQzM2RUI4MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNDMzZFQjYxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneS5jcHAgKi87IH07Ci0JCUJDQzM2RUI5MTM0MkFBM0YwMDRCRUVGNyAv
KiBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzM2RUI3MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAqLzsgfTsKIAkJQkNDNDM4NzgwRTg4NkNDNzAwNTMzREQ1
IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M0Mzg3NzBFODg2Q0M3MDA1MzNERDUgLyogSlNIVE1M
SW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNDNTczMzUwRDY5NUJCRTAwNkVGNTE3
IC8qIERPTVByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50
LmggKi87IH07CiAJCUJDQzU3MzM2MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNTcz
MzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi87IH07CkBAIC0xMjA5
MSw3ICsxMjA4OCw2IEBACiAJCUJDNUE4NkI0MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVj
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01TZWxlY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1Qzc2MjgxNDk3RkUxNDAwQkM0Nzc1
IC8qIFBsYXRmb3JtRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGxhdGZvcm1FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUM3
NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkM1Q0ZDQTgxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXphdGlvblN0cmF0ZWd5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAv
KiBCb3JkZXJWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCb3JkZXJW
YWx1ZS5oOyBwYXRoID0gc3R5bGUvQm9yZGVyVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM1RUI1REMwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPdXRsaW5lVmFsdWUuaDsgcGF0aCA9IHN0eWxl
L091dGxpbmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzVFQjVERTBF
ODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQ29sbGFwc2VkQm9yZGVyVmFsdWUuaDsgcGF0aCA9IHN0eWxlL0Nv
bGxhcHNlZEJvcmRlclZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjMx
Niw4ICsxMjMxMiw2IEBACiAJCUJDQzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDbGllbnRSZWN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Mw
NjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVudFJlY3RMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQzM2RUI2MTM0MkFBM0YwMDRCRUVGNyAvKiBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQkNDMzZFQjcxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDNDM4NzcwRTg4NkND
NzAwNTMzREQ1IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9N
UHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Qcm9n
cmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzU3MzM0MEQ2OTVC
QkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5ODAzLDggKzE5Nzk3LDYgQEAKIAkJCQlGNTg3ODY4NDAyREUzQjg2MDFF
QTQxMjIgLyogQ3Vyc29yLmggKi8sCiAJCQkJQTU3MzJCMDgxMzZBMTYxRDAwNUM4RDdDIC8qIERh
dGVDb21wb25lbnRzLmNwcCAqLywKIAkJCQlBNTczMkIwOTEzNkExNjFEMDA1QzhEN0MgLyogRGF0
ZUNvbXBvbmVudHMuaCAqLywKLQkJCQlCQ0MzNkVCNjEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCAqLywKLQkJCQlCQ0MzNkVCNzEzNDJBQTNGMDA0QkVF
RjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggKi8sCiAJCQkJQTc5NTQ2NDIwQjVD
NENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLywKIAkJCQlBN0I2RTY5RDBCMjkxQTk2MDBE
MDUyOUYgLyogRHJhZ0RhdGEuaCAqLywKIAkJCQlBN0NGQjNDRjBCN0VEMTBBMDA3MEMzMkQgLyog
RHJhZ0ltYWdlLmNwcCAqLywKQEAgLTE5ODM4LDcgKzE5ODMwLDYgQEAKIAkJCQlCQ0ZGNjQ5MDBF
QUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6ZS5oICovLAogCQkJCUE3QUQyRjg1MEVDODlEMDcw
MDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgKi8sCiAJCQkJQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAy
IC8qIExpbmtIYXNoLmggKi8sCi0JCQkJQkM1Q0ZDQTgxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2Fs
aXphdGlvblN0cmF0ZWd5LmggKi8sCiAJCQkJQzA0NkUxQUIxMjA4QTlGRTAwQkEyQ0Y3IC8qIExv
Y2FsaXplZFN0cmluZ3MuY3BwICovLAogCQkJCTkzNTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAvKiBM
b2NhbGl6ZWRTdHJpbmdzLmggKi8sCiAJCQkJQTgyMzlERkUwOUIzQ0Y4QTAwQjYwNjQxIC8qIExv
Z2dpbmcuY3BwICovLApAQCAtMjE1MTMsNyArMjE1MDQsNiBAQAogCQkJCTQxNjJBNDUxMTAxMTQ1
QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0
QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRv
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxh
eURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMkUxMkIwMjY3NjAwQzFBMzU5
IC8qIERlbGF5Tm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzIxMCw3ICsyMzIwMCw2IEBACiAJ
CQkJMDZFODFFRDcwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzYzM0E3MjYxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2Fs
ZVRvU2NyaXB0TWFwcGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1NjgxMjJDQTA2NDAw
M0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM1Q0ZDQTkx
MUY3OTMzMjAwOTlFRDA5IC8qIExvY2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTczMkIwRDEzNkExNkM0MDA1QzhEN0MgLyogTG9jYWxpemVkRGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjUxNDJDNjkxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXpl
ZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ5MTksNyArMjQ5MDgsNiBAQAogCQkJCTQx
NjJBNDUwMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQxQTNENThFMTAxQzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdE
IC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlC
Q0MzNkVCODEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQxNjdFQkY1MTAyOTYyQkEwMDNEMjUyQSAvKiBEZWZhdWx0
U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAyQjEy
QjAyNjc2MDBDMUEzNTkgLyogRGVsYXlEU1BLZXJuZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkQzMTYwMkQxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5Tm9kZS5jcHAgaW4gU291cmNlcyAqLywK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5LmNwcAkocmV2aXNpb24gMTA4MjkzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw5NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIKLQotI2lmIFVTRShQTEFU
Rk9STV9TVFJBVEVHSUVTKQotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMu
aD4KLSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KLQotI2lmIFVTRShDRikKLSNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRl
ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi0vLyBXZSBjYW4ndCB1c2UgU3RyaW5nOjpmb3JtYXQgZm9yIHR3byByZWFzb25zOgotLy8g
IDEpIEl0IGRvZXNuJ3QgaGFuZGxlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBmb3JtYXQg
c3RyaW5nLgotLy8gIDIpIEl0IGRvZXNuJ3QgaGFuZGxlIHRoZSAlMiRkIHN5bnRheC4KLS8vIE5v
dGUgdGhhdCBiZWNhdXNlIHxmb3JtYXR8IGlzIHVzZWQgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIg
dG8gdmFfc3RhcnQsIGl0IGNhbm5vdCBiZSBhIHJlZmVyZW5jZQotLy8gdHlwZSBhY2NvcmRpbmcg
dG8gc2VjdGlvbiAxOC43LzMgb2YgdGhlIEMrKyBOMTkwNSBzdGFuZGFyZC4KLXN0YXRpYyBTdHJp
bmcgZm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4uLikKLXsKLSNpZiBVU0Uo
Q0YpCi0gICAgdmFfbGlzdCBhcmd1bWVudHM7Ci0gICAgdmFfc3RhcnQoYXJndW1lbnRzLCBmb3Jt
YXQpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0Q0ZTdHJpbmcoQWRvcHRDRiwg
Zm9ybWF0LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVz
dWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygwLCAwLCBm
b3JtYXRDRlN0cmluZy5nZXQoKSwgYXJndW1lbnRzKSk7Ci0gICAgdmFfZW5kKGFyZ3VtZW50cyk7
Ci0gICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIHZhX2xp
c3QgYXJndW1lbnRzOwotICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKLSAgICBRU3Ry
aW5nIHJlc3VsdDsKLSAgICByZXN1bHQudnNwcmludGYoZm9ybWF0LmxhdGluMSgpLmRhdGEoKSwg
YXJndW1lbnRzKTsKLSAgICB2YV9lbmQoYXJndW1lbnRzKTsKLSAgICByZXR1cm4gcmVzdWx0Owot
I2Vsc2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmb3JtYXQ7Ci0jZW5kaWYK
LX0KLQotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKLXN0YXRpYyBTdHJpbmcgdHJ1bmNhdGVkU3RyaW5nRm9yTG9v
a3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkKLXsKLSAgICBpZiAob3JpZ2luYWwu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gb3JpZ2luYWw7Ci0gICAgCi0gICAgLy8gVHJ1bmNh
dGUgdGhlIHN0cmluZyBpZiBpdCdzIHRvbyBsb25nLiBUaGlzIGlzIGluIGNvbnNpc3RlbmN5IHdp
dGggQXBwS2l0LgotICAgIHVuc2lnbmVkIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0luTG9v
a3VwTWVudUl0ZW0gPSAyNDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZWxsaXBz
aXMsICgmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKSk7Ci0gICAgCi0gICAgU3RyaW5nIHRyaW1tZWQg
PSBvcmlnaW5hbC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJh
Y3RlcnMgPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJl
ck9mR3JhcGhlbWVDbHVzdGVyc0luTG9va3VwTWVudUl0ZW0pOwotICAgIHJldHVybiBudW1iZXJP
ZkNoYXJhY3RlcnMgPT0gdHJpbW1lZC5sZW5ndGgoKSA/IHRyaW1tZWQgOiB0cmltbWVkLmxlZnQo
bnVtYmVyT2ZDaGFyYWN0ZXJzKSArIGVsbGlwc2lzOwotfQotI2VuZGlmCi0KLURlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneSYgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpzaGFyZWQoKQot
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LCBk
ZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3ksICgpKTsKLSAgICByZXR1cm4gZGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OwotfQotCi1EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkRlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneSgpCi17Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0
aW9uU3RyYXRlZ3k6OmlucHV0RWxlbWVudEFsdFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HX0tFWSgiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkiLCAiYWx0IHRleHQg
Zm9yIDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpyZXNldEJ1dHRvbkRlZmF1bHRM
YWJlbCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlc2V0IiwgImRlZmF1bHQgbGFi
ZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlv
bigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGlu
ZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsCi0gICAgICAgICJ0ZXh0IHRoYXQgYXBwZWFy
cyBhdCB0aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBv
ZiBhICdzZWFyY2hhYmxlIGluZGV4JyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4g
Zm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9vc2VyIGJ1
dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNob29zZSBGaWxlcyIsICJ0aXRsZSBmb3IgYSBtdWx0aXBs
ZSBmaWxlIGNob29zZXIgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jtcy4gVGhpcyB0aXRsZSBzaG91
bGQgYmUgYXMgc2hvcnQgYXMgcG9zc2libGUuIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkg
aW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3Rl
ZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9u
Tm9GaWxlc1NlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBm
aWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBI
VE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93
cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFp
bHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKLX0KLQotI2lmIFBMQVRG
T1JNKE1BQykKLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvcHlJbWFnZVVu
a25vd25GaWxlTGFiZWwoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmtub3duIiwg
IlVua25vd24gZmlsZW5hbWUiKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJP
cGVuIExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiRG93bmxvYWQgTGlua2VkIEZpbGUiLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6
Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJP
cGVuIEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi0jaWYgUExBVEZPUk0oUVQpCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJl
c3MgbWVudSBpdGVtIik7Ci19Ci0jZW5kaWYKLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBW
aWRlbyBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3
V2luZG93KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcg
V2luZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJDb3B5IFZpZGVvIEFkZHJlc3MiLCAiQ29weSBWaWRlbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRl
eHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJDb3B5IEF1ZGlvIEFkZHJl
c3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENvbnRyb2xz
IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1U
YWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkVu
dGVyIEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5Iiwg
Ik1lZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCi17Ci0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBp
dGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhTXV0ZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk11dGUi
LCAiTWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRv
dygpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRv
dyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJCYWNr
IiwgIkJhY2sgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCkKLXsKLSAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ1N0b3AoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdG9wIiwgIlN0b3AgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVm
YXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRh
Z1Bhc3RlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotI2lmIFBMQVRGT1JNKEdUSykKLQotU3RyaW5nIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVsZXRlKCkKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiRGVsZXRlIjsKLX0KLQotU3RyaW5nIERl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2Rz
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAiSW5wdXQgTWV0aG9kcyI7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRl
bVRhZ1VuaWNvZGUoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJVbmlj
b2RlIjsKLX0KLQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdT
ZWxlY3RBbGwoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJTZWxlY3Qg
QWxsIjsKLX0KLQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRl
eHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiSWdub3JlIFNwZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIp
OwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0
ZW1UYWdMZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTGVhcm4g
U3BlbGxpbmciLCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3Ry
aW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNo
V2ViKCkKLXsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlEZWZhdWx0U2Vh
cmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKLSAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3Ry
aW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBw
cm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwg
c2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggd2l0aCBHb29nbGUgY29udGV4dCBtZW51
IGl0ZW0iKTsKLSNlbmRpZgotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxl
Y3RlZFN0cmluZykKLXsKLSNpZiBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIFVOVVNFRF9QQVJBTShzZWxlY3RlZFN0
cmluZyk7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIs
ICJMb29rIFVwIGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKLSNlbHNlCi0jaWYg
VVNFKENGKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2VsZWN0ZWRDRlN0cmluZyhBZG9w
dENGLCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShzZWxlY3RlZFN0cmluZykuY3Jl
YXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlf
U1RSSU5HKCJMb29rIFVwIOKAnCVA4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0
aCBzZWxlY3RlZCB3b3JkIiksIHNlbGVjdGVkQ0ZTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBVcCDigJw8c2VsZWN0aW9uPuKAnSIsICJMb29rIFVw
IGNvbnRleHQgbWVudSBpdGVtIHdpdGggc2VsZWN0ZWQgd29yZCIpLnJlcGxhY2UoIjxzZWxlY3Rp
b24+IiwgdHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oc2VsZWN0ZWRTdHJpbmcpKTsK
LSNlbmRpZgotI2VuZGlmCi19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJp
bmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVH
cmFtbWFyKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIEdyYW1tYXIiLCAi
SWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAiU3BlbGxp
bmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1Bh
bmVsKGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVu
dSBpdGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6
OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNwZWxsaW5n
IHdoaWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3Bl
bGxpbmcoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFyIFdpdGgg
U3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51
SXRlbVRhZ0ZvbnRNZW51KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRm9udCIsICJG
b250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygp
Ci17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBt
ZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29u
dGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
VW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkK
LXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiT3V0bGluZSIsICJPdXRsaW5lIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiUGFyYWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0aW9uIGNv
bnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCi17Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVj
dGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVj
dGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1l
bnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250
ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci0jaWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlNlYXJjaCBpbiBTcG90bGlnaHQiLCAiU2VhcmNoIGluIFNwb3RsaWdodCBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Rm9udHMoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTaG93IEZvbnRzIiwgIlNob3cgZm9udHMgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3R5bGVzLi4uIiwgIlN0eWxl
cyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiU2hvdyBDb2xvcnMiLCAiU2hvdyBjb2xvcnMgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJ
dGVtVGFnU3BlZWNoTWVudSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNwZWVjaCIs
ICJTcGVlY2ggY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKQotewot
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdGFydCBTcGVha2luZyIsICJTdGFydCBzcGVha2lu
ZyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJTdG9wIFNwZWFraW5nIiwgIlN0b3Agc3BlYWtpbmcgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4
dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpCi17Ci0gICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIsICJDb3JyZWN0
IFNwZWxsaW5nIEF1dG9tYXRpY2FsbHkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0
aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJzdGl0dXRpb25zIiwg
IlN1YnN0aXR1dGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRp
b25zKGJvb2wgc2hvdykKLXsKLSAgICBpZiAoc2hvdykgCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTaG93IFN1YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIkhpZGUgU3Vic3RpdHV0aW9ucyIsICJtZW51IGl0ZW0gdGl0bGUi
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJ
dGVtVGFnU21hcnRDb3B5UGFzdGUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFy
dCBDb3B5L1Bhc3RlIiwgIlNtYXJ0IENvcHkvUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVtVGFn
U21hcnRRdW90ZXMoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBRdW90ZXMi
LCAiU21hcnQgUXVvdGVzIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU21hcnQgRGFzaGVzIiwgIlNtYXJ0IERhc2hlcyBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiU21hcnQgTGlua3MiLCAiU21hcnQgTGlua3MgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6Y29udGV4dE1lbnVJdGVt
VGFnVGV4dFJlcGxhY2VtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiVGV4dCBS
ZXBsYWNlbWVudCIsICJUZXh0IFJlcGxhY2VtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0K
LVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRNZW51SXRlbVRhZ1Ry
YW5zZm9ybWF0aW9uc01lbnUoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJUcmFuc2Zv
cm1hdGlvbnMiLCAiVHJhbnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdN
YWtlVXBwZXJDYXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBVcHBlciBD
YXNlIiwgIk1ha2UgVXBwZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
RGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdNYWtlTG93ZXJD
YXNlKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBMb3dlciBDYXNlIiwgIk1h
a2UgTG93ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5Ojpjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkKLXsKLSAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2FwaXRhbGl6ZSIsICJDYXBpdGFsaXplIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNv
bnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiByZXBsYWNlZFN0cmluZzsKLX0K
LQotI2VuZGlmCi0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmNvbnRleHRN
ZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
SW5zcGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi0jZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0g
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Ig
b25seSBpdGVtIGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJj
aCBmaWVsZCBpbWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJjaE1lbnVSZWNlbnRT
ZWFyY2hlc1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNo
ZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4g
Y2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51
IHRpdGxlIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnNlYXJj
aE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkNsZWFyIFJlY2VudCBTZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJjaGVz
IG1lbnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFdlYkFyZWFUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiSFRNTCBjb250ZW50IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3Igd2ViIGFyZWEiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6QVhMaW5rVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxpbmsiLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7Ci19Ci0KLVN0cmluZyBEZWZh
dWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlzdE1hcmtlclRleHQoKQotewotICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJsaXN0IG1hcmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIGxpc3QgbWFya2VyIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3k6OkFYSW1hZ2VNYXBUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
aW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaW1hZ2UgbWFw
Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYSGVhZGluZ1Rl
eHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJoZWFkaW5nIiwgImFjY2Vzc2liaWxp
dHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGVhZGluZ3MiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0aW9uIik7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYRGVmaW5pdGlvbkxp
c3REZWZpbml0aW9uVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRlZmluaXRp
b24iLCAiZGVmaW5pdGlvbiBwaHJhc2UiKTsKLX0KLQotI2lmIFBMQVRGT1JNKE1BQykKLVN0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29u
c3QgU3RyaW5nJiBhcmlhVHlwZSkKLXsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNh
dGlvbkFsZXJ0IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFS
SUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7Ci0gICAgaWYg
KGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdy
b3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09
ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
ZGlhbG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlh
bG9nLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3Jv
dXAgdGhhdCBhY3RzIGFzIGEgY29uc29sZSBsb2cuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJB
UklBQXBwbGljYXRpb25NYXJxdWVlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1h
cnF1ZWUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1
ZWUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uU3RhdHVzIikK
LSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIHN0YXR1cyIsICJBbiBB
UklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgc3RhdHVzIHVwZGF0ZS4iKTsg
ICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25UaW1lciIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0aW1lciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3Jv
dXAgdGhhdCBhY3RzIGFzIGFuIHVwZGF0aW5nIHRpbWVyLiIpOyAgICAKLSAgICBpZiAoYXJpYVR5
cGUgPT0gIkFSSUFEb2N1bWVudCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkb2N1
bWVudCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgZG9jdW1l
bnQuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50QXJ0aWNsZSIpCi0g
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsgICAgCi0gICAgaWYgKGFyaWFU
eXBlID09ICJBUklBRG9jdW1lbnROb3RlIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Im5vdGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG5vdGUg
aW4gYSBkb2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRS
ZWdpb24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9uIiwgIkFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCByZWdpb24gaW4gYSBk
b2N1bWVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtBcHBsaWNh
dGlvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBsaWNhdGlvbiIsICJBbiBB
UklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFwcGxpY2F0aW9uLiIpOyAg
ICAKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya0Jhbm5lciIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJiYW5uZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3Vw
IHRoYXQgYWN0cyBhcyBhIGJhbm5lci4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklB
TGFuZG1hcmtDb21wbGVtZW50YXJ5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNv
bXBsZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBh
IHJlZ2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIpOyAgICAKLSAgICBpZiAoYXJp
YVR5cGUgPT0gIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIikKLSAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImNvbnRlbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29u
dGFpbnMgY29udGVudC4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtN
YWluIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1haW4iLCAiQW4gQVJJQSBhY2Nl
c3NpYmlsaXR5IGdyb3VwIHRoYXQgaXMgdGhlIG1haW4gcG9ydGlvbiBvZiB0aGUgd2Vic2l0ZS4i
KTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIikKLSAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2aWdhdGlvbiBlbGVtZW50cyBv
ZiBhIHdlYnNpdGUuIik7ICAgIAotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrU2Vh
cmNoIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlYXJjaCIsICJBbiBBUklBIGFj
Y2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBhIHNlYXJjaCBmZWF0dXJlIG9mIGEgd2Vi
c2l0ZS4iKTsgICAgCi0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVyZmFjZVRvb2x0
aXAiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJBbiBBUklBIGFj
Y2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsgICAgCi0gICAgaWYg
KGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5z
IHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3Vt
ZW50TWF0aCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIp
OwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLSNlbmRpZgotCi1TdHJpbmcgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5OjpBWEJ1dHRvbkFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2Nj
dXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsK
LX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhSYWRpb0J1dHRvbkFj
dGlvblZlcmIoKSAKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIg
c3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlz
IGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OjpBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewotICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0
aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFzIHVzZWQgYnkg
YWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
OjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3
aGVuIGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxp
dHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhVbmNoZWNr
ZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjaGVj
ayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhbiB1bmNo
ZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTWVudUxpc3RBY3Rpb25W
ZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAic2VsZWN0IjsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6QVhNZW51TGlzdFBvcHVwQWN0
aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInNlbGVjdCI7
Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OkFYTGlua0FjdGlvblZl
cmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3RhdGluZyB0
aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBhcyB1c2Vk
IGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6bWlzc2luZ1BsdWdpblRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJN
aXNzaW5nIFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnaW4gaXMg
bWlzc2luZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpjcmFz
aGVkUGx1Z2luVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gRmFp
bHVyZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3QgcHJvY2VzcyBoYXMg
Y3Jhc2hlZCIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCi17Ci0gICAgcmV0dXJu
IGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlZCBmaWxlcyIsICJMYWJlbCB0
byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGluIGEgZmlsZSB1cGxvYWQg
Y29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1iZXJPZkZpbGVzKTsKLX0K
LQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6dW5rbm93bkZpbGVTaXplVGV4
dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxl
c2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwotfQotCi0jaWYgUExBVEZPUk0oV0lO
KQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp1cGxvYWRGaWxlVGV4dCgp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInVwbG9hZCI7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmFsbEZpbGVzVGV4dCgpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gImFsbCBmaWxlcyI7Ci19Ci0KLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oTUFDKQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
OjpidWlsdEluUERGUGx1Z2luTmFtZSgpCi17Ci0gICAgLy8gQWxzbyBleHBvc2VkIHRvIERPTS4K
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiV2ViS2l0IGJ1aWx0LWluIFBERiIsICJQc2V1ZG8g
cGx1Zy1pbiBuYW1lLCB2aXNpYmxlIGluIEluc3RhbGxlZCBQbHVnLWlucyBwYWdlIGluIFNhZmFy
aS4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6cGRmRG9jdW1l
bnRUeXBlRGVzY3JpcHRpb24oKQotewotICAgIC8vIEFsc28gZXhwb3NlZCB0byBET00uCi0gICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBvcnRhYmxlIERvY3VtZW50IEZvcm1hdCIsICJEZXNjcmlw
dGlvbiBvZiB0aGUgKG9ubHkpIHR5cGUgc3VwcG9ydGVkIGJ5IFBERiBwc2V1ZG8gcGx1Zy1pbi4g
VmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMgcGFnZSBpbiBTYWZhcmkuIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtNTEyKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0
aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OmtleWdlbk1lbnVJdGVtMTAyNCgpCi17Ci0gICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIjEwMjQgKE1lZGl1bSBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlH
RU4gcG9wLXVwIG1lbnUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6a2V5Z2VuTWVudUl0ZW0yMDQ4KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiMjA0
OCAoSGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUi
KTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6a2V5Z2VuS2V5Y2hh
aW5JdGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBob3N0Q0ZTdHJpbmcoQWRvcHRDRiwgaG9zdC5jcmVhdGVDRlN0cmluZygpKTsKLSAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIktleSBmcm9tICVAIiwg
Ik5hbWUgb2Yga2V5Y2hhaW4ga2V5IGdlbmVyYXRlZCBieSB0aGUgS0VZR0VOIHRhZyIpLCBob3N0
Q0ZTdHJpbmcuZ2V0KCkpOwotfQotCi0jaWYgUExBVEZPUk0oSU9TKQotU3RyaW5nIERlZmF1bHRM
b2NhbGl6YXRpb25TdHJhdGVneTo6aHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90IGNvdW50
KQotewotICAgIHN3aXRjaCAoY291bnQpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCIwIEl0ZW1zIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBtdWx0
aXBsZT4gd2hlbiBubyA8b3B0aW9uPiBpdGVtcyBhcmUgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwot
ICAgIGNhc2UgMToKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEgSXRlbSIsICJQcmVz
ZW50IHRoZSBlbGVtZW50IDxzZWxlY3QgbXVsdGlwbGU+IHdoZW4gYSBzaW5nbGUgPG9wdGlvbj4g
aXMgc2VsZWN0ZWQgKGlPUyBvbmx5KSIpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBm
b3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJXp1IEl0ZW1zIiwgIlByZXNlbnQg
dGhlIG51bWJlciBvZiBzZWxlY3RlZCA8b3B0aW9uPiBpdGVtcyBpbiBhIDxzZWxlY3QgbXVsdGlw
bGU+IGVsZW1lbnQgKGlPUyBvbmx5KSIpLCBjb3VudCk7Ci0gICAgfQotfQotI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KLVN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSNpZiBVU0UoQ0YpCi0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmco
QWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgUmV0YWluUHRyPENGTG9j
YWxlUmVmPiBsb2NhbGUoQWRvcHRDRiwgQ0ZMb2NhbGVDb3B5Q3VycmVudCgpKTsKLSAgICBSZXRh
aW5QdHI8Q0ZOdW1iZXJGb3JtYXR0ZXJSZWY+IGZvcm1hdHRlcihBZG9wdENGLCBDRk51bWJlckZv
cm1hdHRlckNyZWF0ZSgwLCBsb2NhbGUuZ2V0KCksIGtDRk51bWJlckZvcm1hdHRlckRlY2ltYWxT
dHlsZSkpOwotCi0gICAgaW50IHdpZHRoSW50ID0gc2l6ZS53aWR0aCgpOwotICAgIFJldGFpblB0
cjxDRk51bWJlclJlZj4gd2lkdGgoQWRvcHRDRiwgQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVy
SW50VHlwZSwgJndpZHRoSW50KSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB3aWR0aFN0
cmluZyhBZG9wdENGLCBDRk51bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1iZXIoMCwg
Zm9ybWF0dGVyLmdldCgpLCB3aWR0aC5nZXQoKSkpOwotCi0gICAgaW50IGhlaWdodEludCA9IHNp
emUuaGVpZ2h0KCk7Ci0gICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBoZWlnaHQoQWRvcHRDRiwg
Q0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJmhlaWdodEludCkpOwotICAgIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4gaGVpZ2h0U3RyaW5nKEFkb3B0Q0YsIENGTnVtYmVyRm9ybWF0
dGVyQ3JlYXRlU3RyaW5nV2l0aE51bWJlcigwLCBmb3JtYXR0ZXIuZ2V0KCksIGhlaWdodC5nZXQo
KSkpOwotCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIl
QCAlQMOXJUAgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFsb25lIGltYWdlICh1
c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1lQ0ZTdHJpbmcuZ2V0
KCksIHdpZHRoU3RyaW5nLmdldCgpLCBoZWlnaHRTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0ZTdHJpbmcoQWRvcHRDRiwgZmlsZW5hbWUu
Y3JlYXRlQ0ZTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJf
VUlfU1RSSU5HKCIlQCAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFuZGFs
b25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZpbGVuYW1l
Q0ZTdHJpbmcuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0jZW5kaWYKLSNl
bHNlCi0gICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCI8Zmls
ZW5hbWU+ICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1h
Z2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwgc2l6ZS53aWR0aCgpLCBz
aXplLmhlaWdodCgpKS5yZXBsYWNlKCI8ZmlsZW5hbWU+IiwgZmlsZW5hbWUpOwotI2VuZGlmCi19
Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6Om1lZGlhRWxlbWVudExvYWRp
bmdTdGF0ZVRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb2FkaW5nLi4uIiwg
Ik1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGlu
ZyIpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjptZWRpYUVsZW1l
bnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
TGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdh
dGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJp
bmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJp
bGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAg
ICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoInZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOwotICAgIGlmIChuYW1lID09ICJN
dXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm11dGUiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1l
ID09ICJVbk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5tdXRl
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0
b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxh
eSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygicGF1c2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBwYXVzZSBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRl
c2NyaXB0aW9uIGZvciB0aW1lbGluZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVy
VGh1bWIiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGltZWxpbmUgc2xpZGVyIHRo
dW1iIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgdGh1bWIi
KTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoImJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHNlZWsgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJl
dHVybiB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHJl
dHVybiB0byByZWFsIHRpbWUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1l
RGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJlbGFwc2VkIHRpbWUiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUgZGlzcGxheSIp
OwotICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCi0gICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJyZW1haW5pbmcgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIHRpbWUgcmVtYWluaW5nIGRpc3BsYXkiKTsKLSAgICBpZiAobmFtZSA9PSAi
U3RhdHVzRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGF0dXMiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsKLSAgICBp
ZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50
ZXIgZnVsbHNjcmVlbiBidXR0b24iKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0
b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmFzdCBmb3J3YXJkIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpOwotICAg
IGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJmYXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBm
YXN0IHJldmVyc2UgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9u
c0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0
aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNh
cHRpb25zIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaGlkZSBjbG9zZWQgY2FwdGlvbnMi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoaWRlIGNsb3NlZCBjYXB0aW9u
cyBidXR0b24iKTsKLQotICAgIC8vIEZJWE1FOiB0aGUgQ29udHJvbHNQYW5lbCBjb250YWluZXIg
c2hvdWxkIG5ldmVyIGJlIHZpc2libGUgaW4gdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5Lgot
ICAgIGlmIChuYW1lID09ICJDb250cm9sc1BhbmVsIikKLSAgICAgICAgcmV0dXJuIFN0cmluZygp
OwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojpsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChuYW1lID09
ICJBdWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYXVkaW8gZWxl
bWVudCBwbGF5YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKLSAgICBp
ZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
InZpZGVvIGVsZW1lbnQgcGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9sbGVy
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygibXV0ZSBhdWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IG11dGUgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciB1biBtdXRlIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09ICJQbGF5
QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImJlZ2luIHBsYXliYWNrIiwg
ImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBwbGF5IGJ1dHRvbiIpOwotICAgIGlmIChuYW1l
ID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXVzZSBw
bGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGF1c2UgYnV0dG9uIik7Ci0g
ICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJt
b3ZpZSB0aW1lIHNjcnViYmVyIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0aW1lbGlu
ZSBzbGlkZXIiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0aHVtYiIsICJhY2Nlc3NpYmls
aXR5IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7Ci0gICAgaWYgKG5hbWUg
PT0gIlJld2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWVrIG1v
dmllIGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IganVtcCBi
YWNrIDMwIHNlY29uZHMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRp
bWVCdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmV0dXJuIHN0cmVhbWlu
ZyBtb3ZpZSB0byByZWFsIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHJldHVy
biBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOwotICAgIGlmIChuYW1lID09
ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY3Vy
cmVudCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IGVsYXBzZWQgdGltZSBkaXNwbGF5Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdE
aXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm51bWJlciBvZiBzZWNvbmRz
IG9mIG1vdmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcmVtYWlu
aW5nIHRpbWUgZGlzcGxheSIpOwotICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKLSAg
ICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImN1cnJlbnQgbW92aWUgc3RhdHVzIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBtb3ZpZSBzdGF0dXMgZGlzcGxheSIpOwotICAgIGlmIChu
YW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJz
ZWVrIHF1aWNrbHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCByZXdp
bmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBmb3J3YXJkIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUg
PT0gIkZ1bGxzY3JlZW5CdXR0b24iKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGxh
eSBtb3ZpZSBpbiBmdWxsc2NyZWVuIG1vZGUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IGVudGVyIGZ1bGxzY3JlZW4gYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRD
YXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdGFydCBkaXNw
bGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Igc2hv
dyBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7Ci0gICAgaWYgKG5hbWUgPT0gIkhpZGVDbG9zZWRD
YXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzdG9wIGRpc3Bs
YXlpbmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBoaWRl
IGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKLXsKLSAgICBp
ZiAoIWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiaW5kZWZp
bml0ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1l
ZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOwotCi0gICAgaW50IHNlY29uZHMgPSBzdGF0aWNf
Y2FzdDxpbnQ+KGZhYnNmKHRpbWUpKTsgCi0gICAgaW50IGRheXMgPSBzZWNvbmRzIC8gKDYwICog
NjAgKiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKLSAgICBpbnQg
bWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAlPSA2MDsKLQotICAg
IGlmIChkYXlzKQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9T
VFJJTkcoIiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29uZHMiLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+
PSAxIGRheSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7Ci0gICAgaWYgKGhvdXJz
KQotICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUx
JGQgaG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAg
dGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMiKSwgaG91
cnMsIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIGlmIChtaW51dGVzKQotICAgICAgICByZXR1cm4g
Zm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgbWludXRlcyAlMiRkIHNl
Y29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGlt
ZSB2YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29uZHMpOwotICAgIHJldHVybiBm
b3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBzZWNvbmRzIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPCA2MCBz
ZWNvbmRzIiksIHNlY29uZHMpOwotfQotCi1TdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0
ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVx
dWlyZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOwotfQotCi1T
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaFRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNo
IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFs
dWUgbm90IG1hdGNoaW5nIHR5cGUiKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKLXsKLSAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUg
YWNjb3JkaW5nIHRvIHBhdHRlcm4iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250
cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVu
Z3RoIik7Ci19Ci0KLVN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygicmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBj
b250cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIik7Ci19Ci0KLVN0
cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VP
dmVyZmxvd1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxv
dyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1
ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKLX0KLQotU3RyaW5nIERlZmF1bHRMb2Nh
bGl6YXRpb25TdHJhdGVneTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1l
c3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVjdGluZyB0
aGUgc3RlcCBhdHRyaWJ1dGUiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaAkocmV2aXNpb24g
MTA4MjkzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMTk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0jZGVmaW5lIERlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0KLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykK
LQotI2luY2x1ZGUgIkxvY2FsaXphdGlvblN0cmF0ZWd5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGVmYXVsdExvY2Fs
aXphdGlvblN0cmF0ZWd5IDogcHVibGljIExvY2FsaXphdGlvblN0cmF0ZWd5IHsKLXB1YmxpYzoK
LSAgICBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKLQotICAgIHN0YXRpYyBEZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kmIHNoYXJlZCgpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgaW5w
dXRFbGVtZW50QWx0VGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVs
dExhYmVsKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9u
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgU3RyaW5n
IGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdmly
dHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpOwotI2VuZGlmCi0jaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlbkxpbmtJbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotI2lmIFBMQVRGT1JN
KFFUKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkKCk7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHkoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0Jh
Y2soKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ3V0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnUGFzdGUoKTsKLSNpZiBQTEFURk9STShHVEspCi0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnRGVsZXRlKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnSW5wdXRNZXRob2RzKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVW5pY29kZSgpOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKTsKLSNlbmRp
ZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KGNvbnN0IFN0
cmluZyYgc2VsZWN0ZWRTdHJpbmcpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5MaW5rKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdu
b3JlR3JhbW1hcigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxs
aW5nTWVudSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVs
bGluZ1BhbmVsKGJvb2wgc2hvdyk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ2hlY2tTcGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQm9sZCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0l0YWxpYygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGlu
ZSgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlv
bigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2Vh
cmNoSW5TcG90bGlnaHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdT
aG93Rm9udHMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXMo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzKCk7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCk7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9u
cyhib29sIHNob3cpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0
Q29weVBhc3RlKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRR
dW90ZXMoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hl
cygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51
KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7Ci0gICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcm
IHJlcGxhY2VkU3RyaW5nKTsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVl
bigpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKLSNlbmRpZiAvLyBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNl
bnRTZWFyY2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51UmVjZW50U2Vh
cmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2Vh
cmNoZXNUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhXZWJBcmVhVGV4dCgpOwotICAgIHZp
cnR1YWwgU3RyaW5nIEFYTGlua1RleHQoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJr
ZXJUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhJbWFnZU1hcFRleHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBBWEhlYWRpbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0
aW9uTGlzdFRlcm1UZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERl
ZmluaXRpb25UZXh0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgU3RyaW5nIEFY
QVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSk7Ci0jZW5kaWYKLSAg
ICB2aXJ0dWFsIFN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVGV4dEZp
ZWxkQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25W
ZXJiKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVn
aW5UZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmls
ZXMpOwotICAgIHZpcnR1YWwgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKTsKLSNpZiBQTEFU
Rk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJpbmcgdXBsb2FkRmlsZVRleHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBhbGxGaWxlc1RleHQoKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAg
ICB2aXJ0dWFsIFN0cmluZyBidWlsdEluUERGUGx1Z2luTmFtZSgpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIHBkZkRvY3VtZW50VHlwZURlc2NyaXB0aW9uKCk7Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5
Z2VuTWVudUl0ZW01MTIoKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTEwMjQo
KTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCk7Ci0jaWYg
UExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgU3RyaW5nIGh0bWxTZWxlY3RNdWx0aXBsZUl0ZW1z
KHNpemVfdCk7Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKLSAgICB2aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IEludFNpemUmKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5n
U3RhdGVUZXh0KCk7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2Fz
dFN0YXRlVGV4dCgpOwotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVs
ZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVk
TWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwg
U3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKLSAgICB2aXJ0dWFs
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0
dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKLSAgICB2aXJ0dWFs
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7Ci0gICAgdmlydHVh
bCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykK
LQotI2VuZGlmIC8vIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneV9oCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgJKHJldmlzaW9uIDEw
ODI5MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMjA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEw
IElnYWxpYSBTLkwKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMb2NhbGl6YXRpb25TdHJhdGVneV9oCi0j
ZGVmaW5lIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKLQotI2lmIFVTRShQTEFURk9STV9TVFJBVEVH
SUVTKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBJbnRTaXplOwotCi1jbGFzcyBMb2NhbGl6YXRpb25TdHJhdGVneSB7Ci1wdWJsaWM6
ICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKSA9IDA7Ci0gICAg
dmlydHVhbCBTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGZp
bGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSA9IDA7Ci0KLSNpZiBQTEFURk9STShNQUMp
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpID0gMDsKLSNl
bmRpZgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKSA9IDA7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRv
dygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZElt
YWdlVG9EaXNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlJbWFnZVRvQ2xpcGJvYXJkKCkgPSAwOwotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpID0gMDsKLSNlbmRpZgotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKSA9IDA7Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdTdG9wKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1JlbG9hZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDdXQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFz
dGUoKSA9IDA7Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0RlbGV0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdJbnB1dE1ldGhvZHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnVW5pY29kZSgpID0gMDsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTZWxlY3RBbGwoKSA9IDA7Ci0jZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBzZWxlY3Rl
ZFN0cmluZykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5M
aW5rKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdy
YW1tYXIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxp
bmdNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dT
cGVsbGluZ1BhbmVsKGJvb2wgc2hvdykgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkgPSAwOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpYygpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpID0gMDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkgPSAwOwot
I2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdT
ZWFyY2hJblNwb3RsaWdodCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTaG93Rm9udHMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU3R5bGVzKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1No
b3dDb2xvcnMoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3Bl
ZWNoTWVudSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdGFy
dFNwZWFraW5nKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0
b3BTcGVha2luZygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNNZW51KCkgPSAwOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKGJvb2wgc2hvdykgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0UXVvdGVzKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KCkg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9u
c01lbnUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZVVw
cGVyQ2FzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNYWtl
TG93ZXJDYXNlKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nh
cGl0YWxpemUoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hh
bmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKSA9IDA7Ci0jZW5kaWYKLSAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpID0g
MDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5Vmlk
ZW9MaW5rVG9DbGlwYm9hcmQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpID0gMDsK
LSAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpID0gMDsK
LSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLQotICAgIHZpcnR1YWwgU3RyaW5nIHNl
YXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHNl
YXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpID0gMDsKLQotICAgIHZpcnR1YWwgU3Ry
aW5nIEFYV2ViQXJlYVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5rVGV4dCgp
ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBBWExpc3RNYXJrZXJUZXh0KCkgPSAwOwotICAgIHZp
cnR1YWwgU3RyaW5nIEFYSW1hZ2VNYXBUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFY
SGVhZGluZ1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRl
cm1UZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0
aW9uVGV4dCgpID0gMDsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFN0cmluZyBB
WEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpID0gMDsKLSNlbmRp
ZgotICAgIAotICAgIHZpcnR1YWwgU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpID0gMDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJp
bmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5n
IEFYTWVudUxpc3RBY3Rpb25WZXJiKCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIEFYTWVudUxp
c3RQb3B1cEFjdGlvblZlcmIoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgQVhMaW5rQWN0aW9u
VmVyYigpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCkgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCkgPSAwOwotICAgIHZpcnR1
YWwgU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVtYmVyT2ZGaWxlcykg
PSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKSA9IDA7Ci0KLSNp
ZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBTdHJpbmcgdXBsb2FkRmlsZVRleHQoKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgYWxsRmlsZXNUZXh0KCkgPSAwOwotI2VuZGlmCi0KLSNpZiBQ
TEFURk9STShNQUMpCi0gICAgdmlydHVhbCBTdHJpbmcgYnVpbHRJblBERlBsdWdpbk5hbWUoKSA9
IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGtl
eWdlbk1lbnVJdGVtMjA0OCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5LZXljaGFp
bkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9zdCkgPSAwOwotI2VuZGlmCi0KLSAgICB2aXJ0dWFs
IFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUm
IHNpemUpID0gMDsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0
ZVRleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2Fz
dFN0YXRlVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBs
b2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJikgPSAwOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KSA9
IDA7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1Rl
eHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVy
bk1pc21hdGNoVGV4dCgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VVbmRlcmZsb3dUZXh0KCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmly
dHVhbCB+TG9jYWxpemF0aW9uU3RyYXRlZ3koKQotICAgIHsKLSAgICB9Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQot
I2VuZGlmIC8vIExvY2FsaXphdGlvblN0cmF0ZWd5X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCShyZXZpc2lvbiAxMDgyOTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDksIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA2LCAyMDA5LCAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0y
Nyw3MTEgKzI3LDkzMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKIAotI2luY2x1ZGUgIkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIgog
I2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpZiBVU0UoQ0YpCisjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgorI2VuZGlmCisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisjaW5jbHVk
ZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNp
bmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCisvLyBXZSBjYW4ndCB1c2Ug
U3RyaW5nOjpmb3JtYXQgZm9yIHR3byByZWFzb25zOgorLy8gIDEpIEl0IGRvZXNuJ3QgaGFuZGxl
IG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBmb3JtYXQgc3RyaW5nLgorLy8gIDIpIEl0IGRv
ZXNuJ3QgaGFuZGxlIHRoZSAlMiRkIHN5bnRheC4KKy8vIE5vdGUgdGhhdCBiZWNhdXNlIHxmb3Jt
YXR8IGlzIHVzZWQgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIgdG8gdmFfc3RhcnQsIGl0IGNhbm5v
dCBiZSBhIHJlZmVyZW5jZQorLy8gdHlwZSBhY2NvcmRpbmcgdG8gc2VjdGlvbiAxOC43LzMgb2Yg
dGhlIEMrKyBOMTkwNSBzdGFuZGFyZC4KK3N0YXRpYyBTdHJpbmcgZm9ybWF0TG9jYWxpemVkU3Ry
aW5nKFN0cmluZyBmb3JtYXQsIC4uLikKK3sKKyNpZiBVU0UoQ0YpCisgICAgdmFfbGlzdCBhcmd1
bWVudHM7CisgICAgdmFfc3RhcnQoYXJndW1lbnRzLCBmb3JtYXQpOworICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gZm9ybWF0Q0ZTdHJpbmcoQWRvcHRDRiwgZm9ybWF0LmNyZWF0ZUNGU3RyaW5n
KCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5n
Q3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygwLCAwLCBmb3JtYXRDRlN0cmluZy5nZXQoKSwg
YXJndW1lbnRzKSk7CisgICAgdmFfZW5kKGFyZ3VtZW50cyk7CisgICAgcmV0dXJuIHJlc3VsdC5n
ZXQoKTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZm9ybWF0Owor
I2VuZGlmCit9CiAKLXN0YXRpYyBpbmxpbmUgTG9jYWxpemF0aW9uU3RyYXRlZ3kqIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCitzdGF0aWMgU3RyaW5nIHRydW5jYXRlZFN0
cmluZ0Zvckxvb2t1cE1lbnVJdGVtKGNvbnN0IFN0cmluZyYgb3JpZ2luYWwpCiB7Ci0gICAgaWYg
KGhhc1BsYXRmb3JtU3RyYXRlZ2llcygpKQotICAgICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCk7CisgICAgaWYgKG9yaWdpbmFsLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIG9yaWdpbmFsOwogCi0gICAgcmV0dXJuICZEZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3k6OnNoYXJlZCgpOworICAgIC8vIFRydW5jYXRlIHRoZSBzdHJpbmcgaWYg
aXQncyB0b28gbG9uZy4gVGhpcyBpcyBpbiBjb25zaXN0ZW5jeSB3aXRoIEFwcEtpdC4KKyAgICB1
bnNpZ25lZCBtYXhOdW1iZXJPZkdyYXBoZW1lQ2x1c3RlcnNJbkxvb2t1cE1lbnVJdGVtID0gMjQ7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVsbGlwc2lzLCAoJmhvcml6b250YWxF
bGxpcHNpcywgMSkpOworCisgICAgU3RyaW5nIHRyaW1tZWQgPSBvcmlnaW5hbC5zdHJpcFdoaXRl
U3BhY2UoKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJhY3RlcnMgPSBudW1DaGFyYWN0ZXJz
SW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0lu
TG9va3VwTWVudUl0ZW0pOworICAgIHJldHVybiBudW1iZXJPZkNoYXJhY3RlcnMgPT0gdHJpbW1l
ZC5sZW5ndGgoKSA/IHRyaW1tZWQgOiB0cmltbWVkLmxlZnQobnVtYmVyT2ZDaGFyYWN0ZXJzKSAr
IGVsbGlwc2lzOwogfQorI2VuZGlmCiAKIFN0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+aW5wdXRFbGVtZW50QWx0VGV4dCgp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQg
ZWxlbWVudCkiLCAiYWx0IHRleHQgZm9yIDxpbnB1dD4gZWxlbWVudHMgd2l0aCBubyBhbHQsIHRp
dGxlLCBvciB2YWx1ZSIpOwogfQogCiBTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5yZXNldEJ1dHRvbkRlZmF1bHRM
YWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJSZXNldCIsICJkZWZhdWx0IGxhYmVs
IGZvciBSZXNldCBidXR0b25zIGluIGZvcm1zIG9uIHdlYiBwYWdlcyIpOwogfQogCiBTdHJpbmcg
c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5
d29yZHM6ICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQgdGhhdCBhcHBlYXJzIGF0
IHRoZSBzdGFydCBvZiBuZWFybHktb2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9mIGEg
J3NlYXJjaGFibGUgaW5kZXgnIik7CiB9CiAKIFN0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFi
ZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zdWJtaXRCdXR0b25E
ZWZhdWx0TGFiZWwoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3VibWl0IiwgImRlZmF1
bHQgbGFiZWwgZm9yIFN1Ym1pdCBidXR0b25zIGluIGZvcm1zIG9uIHdlYiBwYWdlcyIpOwogfQog
CiBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiQ2hvb3NlIEZpbGUiLCAidGl0bGUgZm9yIGEgc2luZ2xlIGZpbGUg
Y2hvb3NlciBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIik7CiB9CiAKIFN0cmluZyBmaWxlQnV0
dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZXMiLCAidGl0bGUgZm9yIGEgbXVsdGlwbGUg
ZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMuIFRoaXMgdGl0bGUgc2hvdWxk
IGJlIGFzIHNob3J0IGFzIHBvc3NpYmxlLiIpOwogfQogCiBTdHJpbmcgZmlsZUJ1dHRvbk5vRmls
ZVNlbGVjdGVkTGFiZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5m
aWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJubyBmaWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2Vk
IGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7CiB9CiAKIFN0cmluZyBm
aWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5maWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygibm8gZmlsZXMgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGlu
IGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGVzIGFyZSBzZWxlY3Rl
ZCBhbmQgdGhlIGJ1dHRvbiBhbGxvd3MgbXVsdGlwbGUgZmlsZXMgdG8gYmUgc2VsZWN0ZWQiKTsK
IH0KIAogU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5kZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRldGFpbHMiLCAidGV4dCB0byBkaXNwbGF5IGluIDxkZXRh
aWxzPiB0YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxkIik7CiB9CiAKICNpZiBQTEFU
Rk9STShNQUMpCiBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5rbm93biIsICJVbmtub3duIGZpbGVuYW1lIik7
CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gTGluayBpbiBOZXcgV2luZG93IiwgIk9wZW4g
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRvd25sb2FkIExpbmtlZCBGaWxlIiwgIkRvd25sb2FkIExp
bmtlZCBGaWxlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJDb3B5IExpbmsiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBp
dGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRv
dygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRl
bVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9w
ZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3cgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2soKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkRvd25sb2FkIEltYWdlIiwgIkRvd25sb2FkIEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7
CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlJbWFnZVRvQ2xpcGJvYXJkKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNvcHkgSW1h
Z2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi0jaWYgUExBVEZPUk0o
UVQpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQotU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQo
KTsKLX0KLSNlbmRpZgotCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNv
bnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
Q29weSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDb3B5IiwgIkNvcHkgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0dvQmFj
aygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJCYWNrIiwgIkJhY2sgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0dvRm9y
d2FyZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJGb3J3YXJkIiwgIkZvcndhcmQgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdT
dG9wKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0b3AiLCAiU3RvcCBjb250ZXh0IG1l
bnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKIHsKLSAg
ICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUmVsb2Fk
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0N1dCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIik7
CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCk7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlBhc3RlIiwgIlBhc3RlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKICNpZiBQTEFURk9STShRVCkKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdTZWxlY3RBbGwoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAiU2VsZWN0
IEFsbCI7CiB9CiAjZW5kaWYKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0Zv
dW5kKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJ
dGVtVGFnTm9HdWVzc2VzRm91bmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTm8gR3Vl
c3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5n
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIklnbm9yZSBTcGVsbGluZyIsICJJZ25vcmUg
U3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0xlYXJuU3BlbGxpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIkxlYXJuIFNwZWxsaW5nIiwgIkxlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2Vh
cmNoSW5TcG90bGlnaHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJTZWFyY2ggaW4gU3BvdGxpZ2h0IiwgIlNlYXJjaCBpbiBTcG90bGlnaHQgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KICNlbmRpZgogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2Vh
cmNoV2ViKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnU2VhcmNoV2ViKCk7CisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisg
ICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzZWFyY2hQcm92aWRlck5hbWUoQWRvcHRDRiwgd2tD
b3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKSk7CisgICAgcmV0dXJuIGZvcm1h
dExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJTZWFyY2ggd2l0aCAlQCIsICJTZWFyY2gg
d2l0aCBzZWFyY2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1l
IGluc2VydGVkIiksIHNlYXJjaFByb3ZpZGVyTmFtZS5nZXQoKSk7CisjZWxzZQorICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJTZWFyY2ggd2l0aCBHb29nbGUiLCAiU2VhcmNoIHdpdGggR29vZ2xl
IGNvbnRleHQgbWVudSBpdGVtIik7CisjZW5kaWYKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0xvb2tVcEluRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIHNlbGVjdGVkU3RyaW5nKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdMb29r
VXBJbkRpY3Rpb25hcnkoc2VsZWN0ZWRTdHJpbmcpOworI2lmIGRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgVU5VU0VE
X1BBUkFNKHNlbGVjdGVkU3RyaW5nKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9vayBV
cCBpbiBEaWN0aW9uYXJ5IiwgIkxvb2sgVXAgaW4gRGljdGlvbmFyeSBjb250ZXh0IG1lbnUgaXRl
bSIpOworI2Vsc2UKKyNpZiBVU0UoQ0YpCisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzZWxl
Y3RlZENGU3RyaW5nKEFkb3B0Q0YsIHRydW5jYXRlZFN0cmluZ0Zvckxvb2t1cE1lbnVJdGVtKHNl
bGVjdGVkU3RyaW5nKS5jcmVhdGVDRlN0cmluZygpKTsKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxp
emVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIkxvb2sgVXAg4oCcJUDigJ0iLCAiTG9vayBVcCBjb250
ZXh0IG1lbnUgaXRlbSB3aXRoIHNlbGVjdGVkIHdvcmQiKSwgc2VsZWN0ZWRDRlN0cmluZy5nZXQo
KSk7CisjZWxzZQorICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29rIFVwIOKAnDxzZWxlY3Rp
b24+4oCdIiwgIkxvb2sgVXAgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBzZWxlY3RlZCB3b3JkIiku
cmVwbGFjZSgiPHNlbGVjdGlvbj4iLCB0cnVuY2F0ZWRTdHJpbmdGb3JMb29rdXBNZW51SXRlbShz
ZWxlY3RlZFN0cmluZykpOworI2VuZGlmCisjZW5kaWYKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5MaW5rKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
T3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiSWdub3JlIEdyYW1tYXIiLCAiSWdub3JlIEdyYW1tYXIgY29u
dGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5n
TWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ1NwZWxsaW5nTWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTcGVsbGlu
ZyBhbmQgR3JhbW1hciIsICJTcGVsbGluZyBhbmQgR3JhbW1hciBjb250ZXh0IHN1Yi1tZW51IGl0
ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJv
b2wgc2hvdykKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoc2hvdyk7CisgICAgaWYgKHNob3cpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1lbnUg
aXRlbSB0aXRsZSIpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJIaWRlIFNwZWxsaW5nIGFu
ZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ2hlY2tTcGVsbGluZygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQ2hlY2sgRG9jdW1lbnQgTm93IiwgIkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVu
dSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hp
bGVUeXBpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNwZWxsaW5nIHdo
aWxlIHR5cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5n
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGlu
ZyIsICJDaGVjayBncmFtbWFyIHdpdGggc3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRm9udCIsICJGb250IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIp
OwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dG
b250cygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ1Nob3dGb250cygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IEZvbnRz
IiwgIlNob3cgZm9udHMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KICNlbmRpZgogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiQm9sZCIsICJCb2xkIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdJdGFsaWMoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
SXRhbGljIiwgIkl0YWxpYyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCk7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIlVuZGVybGluZSIsICJVbmRlcmxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAog
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKQogewotICAgIHJldHVybiBsb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCk7CisgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIk91dGxpbmUiLCAiT3V0bGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOwog
fQogCiAjaWYgUExBVEZPUk0oTUFDKQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0eWxlcygp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1N0eWxlcygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdHlsZXMuLi4iLCAiU3R5bGVz
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93
Q29sb3JzKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnU2hvd0NvbG9ycygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTaG93IENv
bG9ycyIsICJTaG93IGNvbG9ycyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnU3BlZWNoTWVudSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NwZWVjaE1lbnUoKTsKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiU3BlZWNoIiwgIlNwZWVjaCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0K
IAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmcoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTdGFydFNwZWFraW5n
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN0YXJ0IFNwZWFraW5nIiwgIlN0YXJ0IHNw
ZWFraW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdG9wU3BlYWtpbmcoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5j
b250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiU3RvcCBTcGVha2luZyIsICJTdG9wIHNwZWFraW5nIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAjZW5kaWYKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51
KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGFy
YWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUg
aXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdUZXh0RGlyZWN0aW9uTWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTZWxlY3Rp
b24gRGlyZWN0aW9uIiwgIlNlbGVjdGlvbiBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKIHsK
LSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnRGVm
YXVsdERpcmVjdGlvbigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJEZWZhdWx0IiwgIkRl
ZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKTsKKyAgICByZXR1
cm4gV0VCX1VJX1NUUklORygiTGVmdCB0byBSaWdodCIsICJMZWZ0IHRvIFJpZ2h0IGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1JpZ2h0VG9MZWZ0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlJpZ2h0IHRvIExlZnQi
LCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiAjaWYgUExBVEZPUk0o
TUFDKQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGlj
YWxseSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkoKTsKKyAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiQ29ycmVjdCBTcGVsbGluZyBBdXRvbWF0aWNhbGx5IiwgIkNvcnJlY3QgU3BlbGxp
bmcgQXV0b21hdGljYWxseSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnU3Vic3RpdHV0aW9uc01lbnUoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVudSgpOworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJzdGl0dXRpb25zIiwgIlN1YnN0aXR1dGlvbnMgY29u
dGV4dCBzdWItbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93
U3Vic3RpdHV0aW9ucyhib29sIHNob3cpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKHNob3cpOworICAgIGlm
IChzaG93KQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU2hvdyBTdWJzdGl0dXRpb25z
IiwgIm1lbnUgaXRlbSB0aXRsZSIpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJIaWRlIFN1
YnN0aXR1dGlvbnMiLCAibWVudSBpdGVtIHRpdGxlIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdTbWFydENvcHlQYXN0ZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKCk7CisgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoIlNtYXJ0IENvcHkvUGFzdGUiLCAiU21hcnQgQ29weS9QYXN0ZSBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdTbWFydFF1b3RlcygpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTbWFydCBRdW90ZXMi
LCAiU21hcnQgUXVvdGVzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTbWFydERhc2hlcygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0RGFzaGVzKCk7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlNtYXJ0IERhc2hlcyIsICJTbWFydCBEYXNoZXMgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtz
KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNtYXJ0IExpbmtzIiwgIlNtYXJ0IExpbmtz
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUZXh0
UmVwbGFjZW1lbnQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiVGV4dCBSZXBsYWNlbWVudCIsICJUZXh0IFJlcGxhY2VtZW50IGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUcmFuc2Zvcm1hdGlvbnNNZW51KCkK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
VHJhbnNmb3JtYXRpb25zTWVudSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJUcmFuc2Zv
cm1hdGlvbnMiLCAiVHJhbnNmb3JtYXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOwogfQog
CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZSgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2Uo
KTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTWFrZSBVcHBlciBDYXNlIiwgIk1ha2UgVXBw
ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTWFrZUxvd2VyQ2FzZSgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ01ha2VMb3dlckNhc2UoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiTWFrZSBMb3dlciBDYXNlIiwgIk1ha2UgTG93ZXIgQ2FzZSBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpCiB7Ci0gICAg
cmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxp
emUoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2FwaXRhbGl6ZSIsICJDYXBpdGFsaXpl
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFu
Z2VCYWNrKGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2socmVwbGFjZWRT
dHJpbmcpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlcGxhY2VkU3RyaW5n
OwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpOworICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBWaWRl
byBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCk7
CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyIsICJP
cGVuIEF1ZGlvIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCiB7Ci0gICAgcmV0
dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xp
bmtUb0NsaXBib2FyZCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDb3B5IFZpZGVvIEFk
ZHJlc3MiLCAiQ29weSBWaWRlbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7
CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQo
KQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
Q29weSBBdWRpbyBBZGRyZXNzIiwgIkNvcHkgQXVkaW8gQWRkcmVzcyBMb2NhdGlvbiBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scygpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiQ29udHJvbHMiLCAiTWVkaWEgQ29udHJvbHMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAog
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJMb29wIiwgIk1lZGlhIExvb3AgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4
dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiRW50ZXIgRnVsbHNjcmVlbiIsICJWaWRlbyBFbnRlciBGdWxsc2NyZWVuIGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQog
ewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBsYXkoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiUGxheSIsICJNZWRpYSBQbGF5
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJQYXVzZSIs
ICJNZWRpYSBQYXVzZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFNdXRlKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIk11dGUiLCAiTWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogICAgIAogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiSW5zcGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxl
bWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRf
TUVOVVMpCiAKIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5zZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hl
c1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTm8gcmVjZW50IHNlYXJjaGVzIiwg
IkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBv
biB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3aGVuIG5vIHNlYXJjaGVzIGhhdmUgYmVlbiBwZXJm
b3JtZWQiKTsKIH0KIAotU3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQgKCkKK1N0
cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCAoKTsKKyAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiUmVjZW50IFNlYXJjaGVzIiwgImxhYmVsIGZvciBmaXJzdCBp
dGVtIGluIHRoZSBtZW51IHRoYXQgYXBwZWFycyB3aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2gg
ZmllbGQgaW1hZ2UsIHVzZWQgYXMgZW1iZWRkZWQgbWVudSB0aXRsZSIpOwogfQogCiBTdHJpbmcg
c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNsZWFyIFJlY2VudCBTZWFyY2hlcyIsICJtZW51IGl0
ZW0gaW4gUmVjZW50IFNlYXJjaGVzIG1lbnUgdGhhdCBlbXB0aWVzIG1lbnUncyBjb250ZW50cyIp
OwogfQogCiBTdHJpbmcgQVhXZWJBcmVhVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPkFYV2ViQXJlYVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
SFRNTCBjb250ZW50IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Igd2ViIGFy
ZWEiKTsKIH0KIAogU3RyaW5nIEFYTGlua1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5BWExpbmtUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImxp
bmsiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7CiB9CiAKIFN0
cmluZyBBWExpc3RNYXJrZXJUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+QVhMaXN0TWFya2VyVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJsaXN0
IG1hcmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpc3QgbWFya2Vy
Iik7CiB9CiAKIFN0cmluZyBBWEltYWdlTWFwVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPkFYSW1hZ2VNYXBUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoImltYWdlIG1hcCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGltYWdl
IG1hcCIpOwogfQogCiBTdHJpbmcgQVhIZWFkaW5nVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPkFYSGVhZGluZ1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiaGVhZGluZyIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGhlYWRp
bmdzIik7CiB9CiAKIFN0cmluZyBBWERlZmluaXRpb25MaXN0VGVybVRleHQoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWERlZmluaXRpb25MaXN0VGVybVRleHQoKTsK
KyAgICByZXR1cm4gV0VCX1VJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0
aW9uIik7CiB9CiAKIFN0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQogewot
ICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWERlZmluaXRpb25MaXN0RGVmaW5p
dGlvblRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZGVmaW5pdGlvbiIsICJkZWZp
bml0aW9uIHBocmFzZSIpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQogU3RyaW5nIEFYQVJJQUNv
bnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSkKIHsKLSAgICByZXR1cm4gbG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+QVhBUklBQ29udGVudEdyb3VwVGV4dChhcmlhVHlwZSk7Cisg
ICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydCIpCisgICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJhbGVydCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhh
dCBhY3RzIGFzIGFuIGFsZXJ0LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0
aW9uQWxlcnREaWFsb2ciKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQgZGlh
bG9nIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQg
ZGlhbG9nLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uRGlhbG9nIikK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImRpYWxvZyIsICJBbiBBUklBIGFjY2Vzc2li
aWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGRpYWxvZy4iKTsKKyAgICBpZiAoYXJpYVR5cGUg
PT0gIkFSSUFBcHBsaWNhdGlvbkxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJs
b2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGNvbnNvbGUg
bG9nLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTWFycXVlZSIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtYXJxdWVlIiwgIkFuIEFSSUEgYWNjZXNzaWJp
bGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBtYXJxdWVlLiIpOworICAgIGlmIChhcmlhVHlwZSA9
PSAiQVJJQUFwcGxpY2F0aW9uU3RhdHVzIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImFwcGxpY2F0aW9uIHN0YXR1cyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBh
Y3RzIGFzIGEgc3RhdHVzIHVwZGF0ZS4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBs
aWNhdGlvblRpbWVyIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRpbWVyIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gdXBkYXRpbmcgdGltZXIu
Iik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnQiKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiZG9jdW1lbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRo
YXQgYWN0cyBhcyBhIGRvY3VtZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3Vt
ZW50QXJ0aWNsZSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsKKyAg
ICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudE5vdGUiKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygibm90ZSIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3Rz
IGFzIGEgbm90ZSBpbiBhIGRvY3VtZW50LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURv
Y3VtZW50UmVnaW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInJlZ2lvbiIsICJB
biBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgZGlzdGluY3QgcmVnaW9u
IGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtBcHBs
aWNhdGlvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcHBsaWNhdGlvbiIsICJB
biBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFwcGxpY2F0aW9uLiIp
OworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQmFubmVyIikKKyAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoImJhbm5lciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGEgYmFubmVyLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRt
YXJrQ29tcGxlbWVudGFyeSIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjb21wbGVt
ZW50YXJ5IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSByZWdp
b24gb2YgY29tcGxlbWVudGFyeSBpbmZvcm1hdGlvbi4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0g
IkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImNvbnRlbnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgY29u
dGVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya01haW4iKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygibWFpbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3Jv
dXAgdGhhdCBpcyB0aGUgbWFpbiBwb3J0aW9uIG9mIHRoZSB3ZWJzaXRlLiIpOworICAgIGlmIChh
cmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrTmF2aWdhdGlvbiIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJuYXZpZ2F0aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGNvbnRhaW5zIHRoZSBtYWluIG5hdmlnYXRpb24gZWxlbWVudHMgb2YgYSB3ZWJzaXRlLiIpOwor
ICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrU2VhcmNoIikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInNlYXJjaCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhh
dCBjb250YWlucyBhIHNlYXJjaCBmZWF0dXJlIG9mIGEgd2Vic2l0ZS4iKTsKKyAgICBpZiAoYXJp
YVR5cGUgPT0gIkFSSUFVc2VySW50ZXJmYWNlVG9vbHRpcCIpCisgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJ0b29sdGlwIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYSB0b29sdGlwLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQVRhYlBhbmVsIikK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRhYiBwYW5lbCIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyB0aGUgY29udGVudCBvZiBhIHRhYi4iKTsKKyAg
ICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudE1hdGgiKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygibWF0aCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250
YWlucyBtYXRoZW1hdGljYWwgc3ltYm9scy4iKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAj
ZW5kaWYKICAgICAKIFN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQogewotICAgIHJldHVybiBs
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWEJ1dHRvbkFjdGlvblZlcmIoKTsKKyAgICByZXR1cm4g
V0VCX1VJX1NUUklORygicHJlc3MiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxs
IG9jY3VyIHdoZW4gYSBidXR0b24gaXMgcHJlc3NlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5
Iik7CiB9CiAKIFN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCk7CisgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlbGVjdCIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0
aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHJhZGlvIGJ1dHRvbiBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5
IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpCiB7
Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYVGV4dEZpZWxkQWN0aW9uVmVy
YigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcg
dGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQs
IGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCiBTdHJpbmcgQVhDaGVja2VkQ2hlY2tC
b3hBY3Rpb25WZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhD
aGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInVu
Y2hlY2siLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBj
aGVja2VkIGNoZWNrYm94IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwog
fQogCiBTdHJpbmcgQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQogewotICAgIHJldHVy
biBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigp
OworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFj
dGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhbiB1bmNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tl
ZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CiB9CiAKIFN0cmluZyBBWExpbmtBY3Rpb25W
ZXJiKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+QVhMaW5rQWN0aW9u
VmVyYigpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3RhdGluZyB0
aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBhcyB1c2Vk
IGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAogU3RyaW5nIEFYTWVudUxpc3RQb3B1cEFjdGlvblZl
cmIoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5BWE1lbnVMaXN0UG9w
dXBBY3Rpb25WZXJiKCk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gInNlbGVj
dCI7CiB9CiAKIFN0cmluZyBBWE1lbnVMaXN0QWN0aW9uVmVyYigpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPkFYTWVudUxpc3RBY3Rpb25WZXJiKCk7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gInNlbGVjdCI7CiB9CiAKIFN0cmluZyBtaXNzaW5nUGx1
Z2luVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1pc3NpbmdQ
bHVnaW5UZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk1pc3NpbmcgUGx1Zy1pbiIs
ICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWdpbiBpcyBtaXNzaW5nIik7CiB9CiAK
IFN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPmNyYXNoZWRQbHVnaW5UZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IlBsdWctaW4gRmFpbHVyZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3Qg
cHJvY2VzcyBoYXMgY3Jhc2hlZCIpOwogfQogCiBTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4
dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVzKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJh
dGVneSgpLT5tdWx0aXBsZUZpbGVVcGxvYWRUZXh0KG51bWJlck9mRmlsZXMpOworICAgIHJldHVy
biBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJWQgZmlsZXMiLCAiTGFiZWwg
dG8gZGVzY3JpYmUgdGhlIG51bWJlciBvZiBmaWxlcyBzZWxlY3RlZCBpbiBhIGZpbGUgdXBsb2Fk
IGNvbnRyb2wgdGhhdCBhbGxvd3MgbXVsdGlwbGUgZmlsZXMiKSwgbnVtYmVyT2ZGaWxlcyk7CiB9
CiAKIFN0cmluZyB1bmtub3duRmlsZVNpemVUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+dW5rbm93bkZpbGVTaXplVGV4dCgpOworICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJVbmtub3duIiwgIlVua25vd24gZmlsZXNpemUgRlRQIGRpcmVjdG9yeSBsaXN0aW5n
IGl0ZW0iKTsKIH0KIAogI2lmIFBMQVRGT1JNKFdJTikKIFN0cmluZyB1cGxvYWRGaWxlVGV4dCgp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnVwbG9hZEZpbGVUZXh0KCk7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gInVwbG9hZCI7CiB9CiAKIFN0cmlu
ZyBhbGxGaWxlc1RleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5h
bGxGaWxlc1RleHQoKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAiYWxsIGZp
bGVzIjsKIH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQogU3RyaW5nIGJ1aWx0SW5QREZQ
bHVnaW5OYW1lKCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+YnVpbHRJ
blBERlBsdWdpbk5hbWUoKTsKKyAgICAvLyBBbHNvIGV4cG9zZWQgdG8gRE9NLgorICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJXZWJLaXQgYnVpbHQtaW4gUERGIiwgIlBzZXVkbyBwbHVnLWluIG5h
bWUsIHZpc2libGUgaW4gSW5zdGFsbGVkIFBsdWctaW5zIHBhZ2UgaW4gU2FmYXJpLiIpOwogfQog
CiBTdHJpbmcgcGRmRG9jdW1lbnRUeXBlRGVzY3JpcHRpb24oKQogewotICAgIHJldHVybiBsb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5wZGZEb2N1bWVudFR5cGVEZXNjcmlwdGlvbigpOworICAgIC8v
IEFsc28gZXhwb3NlZCB0byBET00uCisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlBvcnRhYmxl
IERvY3VtZW50IEZvcm1hdCIsICJEZXNjcmlwdGlvbiBvZiB0aGUgKG9ubHkpIHR5cGUgc3VwcG9y
dGVkIGJ5IFBERiBwc2V1ZG8gcGx1Zy1pbi4gVmlzaWJsZSBpbiBJbnN0YWxsZWQgUGx1Zy1pbnMg
cGFnZSBpbiBTYWZhcmkuIik7CiB9CiAKIFN0cmluZyBrZXlnZW5NZW51SXRlbTUxMigpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmtleWdlbk1lbnVJdGVtNTEyKCk7Cisg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjUxMiAoTG93IEdyYWRlKSIsICJNZW51IGl0ZW0gdGl0
bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpOwogfQogCiBTdHJpbmcga2V5Z2VuTWVudUl0ZW0x
MDI0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+a2V5Z2VuTWVudUl0
ZW0xMDI0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjEwMjQgKE1lZGl1bSBHcmFkZSki
LCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKTsKIH0KIAogU3RyaW5n
IGtleWdlbk1lbnVJdGVtMjA0OCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPmtleWdlbk1lbnVJdGVtMjA0OCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCIyMDQ4
IChIaWdoIEdyYWRlKSIsICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIp
OwogfQogCiBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3Qp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmtleWdlbktleWNoYWluSXRl
bU5hbWUoaG9zdCk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBob3N0Q0ZTdHJpbmcoQWRv
cHRDRiwgaG9zdC5jcmVhdGVDRlN0cmluZygpKTsKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVk
U3RyaW5nKFdFQl9VSV9TVFJJTkcoIktleSBmcm9tICVAIiwgIk5hbWUgb2Yga2V5Y2hhaW4ga2V5
IGdlbmVyYXRlZCBieSB0aGUgS0VZR0VOIHRhZyIpLCBob3N0Q0ZTdHJpbmcuZ2V0KCkpOwogfQog
CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKK1N0cmluZyBodG1sU2VsZWN0TXVsdGlwbGVJ
dGVtcyhzaXplX3QgY291bnQpCit7CisgICAgc3dpdGNoIChjb3VudCkgeworICAgIGNhc2UgMDoK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIjAgSXRlbXMiLCAiUHJlc2VudCB0aGUgZWxl
bWVudCA8c2VsZWN0IG11bHRpcGxlPiB3aGVuIG5vIDxvcHRpb24+IGl0ZW1zIGFyZSBzZWxlY3Rl
ZCAoaU9TIG9ubHkpIik7CisgICAgY2FzZSAxOgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygiMSBJdGVtIiwgIlByZXNlbnQgdGhlIGVsZW1lbnQgPHNlbGVjdCBtdWx0aXBsZT4gd2hlbiBh
IHNpbmdsZSA8b3B0aW9uPiBpcyBzZWxlY3RlZCAoaU9TIG9ubHkpIik7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfU1RSSU5HKCIlenUg
SXRlbXMiLCAiUHJlc2VudCB0aGUgbnVtYmVyIG9mIHNlbGVjdGVkIDxvcHRpb24+IGl0ZW1zIGlu
IGEgPHNlbGVjdCBtdWx0aXBsZT4gZWxlbWVudCAoaU9TIG9ubHkpIiksIGNvdW50KTsKKyAgICB9
Cit9CisjZW5kaWYKKwogU3RyaW5nIGltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+aW1hZ2VUaXRsZShmaWxlbmFtZSwgc2l6ZSk7CisjaWYgVVNFKENGKQorI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmaWxlbmFt
ZUNGU3RyaW5nKEFkb3B0Q0YsIGZpbGVuYW1lLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIFJldGFp
blB0cjxDRkxvY2FsZVJlZj4gbG9jYWxlKEFkb3B0Q0YsIENGTG9jYWxlQ29weUN1cnJlbnQoKSk7
CisgICAgUmV0YWluUHRyPENGTnVtYmVyRm9ybWF0dGVyUmVmPiBmb3JtYXR0ZXIoQWRvcHRDRiwg
Q0ZOdW1iZXJGb3JtYXR0ZXJDcmVhdGUoMCwgbG9jYWxlLmdldCgpLCBrQ0ZOdW1iZXJGb3JtYXR0
ZXJEZWNpbWFsU3R5bGUpKTsKKworICAgIGludCB3aWR0aEludCA9IHNpemUud2lkdGgoKTsKKyAg
ICBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+IHdpZHRoKEFkb3B0Q0YsIENGTnVtYmVyQ3JlYXRlKDAs
IGtDRk51bWJlckludFR5cGUsICZ3aWR0aEludCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gd2lkdGhTdHJpbmcoQWRvcHRDRiwgQ0ZOdW1iZXJGb3JtYXR0ZXJDcmVhdGVTdHJpbmdXaXRo
TnVtYmVyKDAsIGZvcm1hdHRlci5nZXQoKSwgd2lkdGguZ2V0KCkpKTsKKworICAgIGludCBoZWln
aHRJbnQgPSBzaXplLmhlaWdodCgpOworICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gaGVpZ2h0
KEFkb3B0Q0YsIENGTnVtYmVyQ3JlYXRlKDAsIGtDRk51bWJlckludFR5cGUsICZoZWlnaHRJbnQp
KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhlaWdodFN0cmluZyhBZG9wdENGLCBDRk51
bWJlckZvcm1hdHRlckNyZWF0ZVN0cmluZ1dpdGhOdW1iZXIoMCwgZm9ybWF0dGVyLmdldCgpLCBo
ZWlnaHQuZ2V0KCkpKTsKKworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJ
X1NUUklORygiJUAgJUDDlyVAIHBpeGVscyIsICJ3aW5kb3cgdGl0bGUgZm9yIGEgc3RhbmRhbG9u
ZSBpbWFnZSAodXNlcyBtdWx0aXBsaWNhdGlvbiBzeW1ib2wsIG5vdCB4KSIpLCBmaWxlbmFtZUNG
U3RyaW5nLmdldCgpLCB3aWR0aFN0cmluZy5nZXQoKSwgaGVpZ2h0U3RyaW5nLmdldCgpKTsKKyNl
bHNlCisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmaWxlbmFtZUNGU3RyaW5nKEFkb3B0Q0Ys
IGZpbGVuYW1lLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX1NUUklORygiJUAgJWTDlyVkIHBpeGVscyIsICJ3aW5kb3cgdGl0bGUgZm9y
IGEgc3RhbmRhbG9uZSBpbWFnZSAodXNlcyBtdWx0aXBsaWNhdGlvbiBzeW1ib2wsIG5vdCB4KSIp
LCBmaWxlbmFtZUNGU3RyaW5nLmdldCgpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwor
I2VuZGlmCisjZWxzZQorICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NU
UklORygiPGZpbGVuYW1lPiAlZMOXJWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBzdGFu
ZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIHNpemUu
d2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkucmVwbGFjZSgiPGZpbGVuYW1lPiIsIGZpbGVuYW1lKTsK
KyNlbmRpZgogfQogCiBTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpCiB7Ci0g
ICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPm1lZGlhRWxlbWVudExvYWRpbmdTdGF0
ZVRleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygiTG9hZGluZy4uLiIsICJNZWRpYSBj
b250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gdGhlIG1lZGlhIGlzIGxvYWRpbmciKTsKIH0K
IAogU3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKQogewotICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5tZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3Rh
dGVUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxpdmUgQnJvYWRjYXN0IiwgIk1l
ZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRj
YXN0Iik7CiB9CiAKLVN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNv
bnN0IFN0cmluZyYgY29udHJvbE5hbWUpCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxl
bWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29udHJvbE5h
bWUpOwotfQorICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIiwgImFjY2Vzc2liaWxpdHkg
cm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIik7CisgICAgaWYg
KG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ2
aWRlbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciB2aWRlbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1
dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtdXRlIiwgImFjY2Vzc2liaWxp
dHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbXV0ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAi
VW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInVubXV0ZSIsICJh
Y2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHR1cm4gbXV0ZSBvZmYgYnV0dG9uIik7
CisgICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygicGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHBsYXkgYnV0
dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoInBhdXNlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
cGF1c2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCisgICAgICAgIHJldHVy
biBXRUJfVUlfU1RSSU5HKCJtb3ZpZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlw
dGlvbiBmb3IgdGltZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1i
IikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRpbWVsaW5lIHNsaWRlciB0aHVtYiIs
ICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHRpbWVsaW5lIHRodW1iIik7Cisg
ICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZv
ciBzZWVrIGJhY2sgMzAgc2Vjb25kcyBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJyZXR1cm4g
dG8gcmVhbHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciByZXR1cm4g
dG8gcmVhbCB0aW1lIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURpc3Bs
YXkiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZWxhcHNlZCB0aW1lIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZWxhcHNlZCB0aW1lIGRpc3BsYXkiKTsKKyAg
ICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklORygicmVtYWluaW5nIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0
aW9uIGZvciB0aW1lIHJlbWFpbmluZyBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUgPT0gIlN0YXR1
c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic3RhdHVzIiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbW92aWUgc3RhdHVzIik7CisgICAgaWYgKG5h
bWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
ZnVsbHNjcmVlbiIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGVudGVyIGZ1
bGxzY3JlZW4gYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImZhc3QgZm9yd2FyZCIsICJhY2Nlc3NpYmls
aXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGZhc3QgZm9yd2FyZCBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
ZmFzdCByZXZlcnNlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCBy
ZXZlcnNlIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0
b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2hvdyBjbG9zZWQgY2FwdGlvbnMi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBzaG93IGNsb3NlZCBjYXB0aW9u
cyBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiSGlkZUNsb3NlZENhcHRpb25zQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImhpZGUgY2xvc2VkIGNhcHRpb25zIiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0
dG9uIik7CisKKyAgICAvLyBGSVhNRTogdGhlIENvbnRyb2xzUGFuZWwgY29udGFpbmVyIHNob3Vs
ZCBuZXZlciBiZSB2aXNpYmxlIGluIHRoZSBhY2Nlc3NpYmlsaXR5IGhpZXJhcmNoeS4KKyAgICBp
ZiAobmFtZSA9PSAiQ29udHJvbHNQYW5lbCIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcmIG5h
bWUpCit7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMg
ZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGF1ZGlvIGVsZW1l
bnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygidmlkZW8gZWxlbWVudCBwbGF5YmFjayBjb250cm9scyBh
bmQgc3RhdHVzIGRpc3BsYXkiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB2
aWRlbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIp
CisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtdXRlIGF1ZGlvIHRyYWNrcyIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbXV0ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAi
VW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInVubXV0ZSBhdWRp
byB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHVuIG11dGUgYnV0dG9uIik7
CisgICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiYmVnaW4gcGxheWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHBsYXkg
YnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInBhdXNlIHBsYXliYWNrIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGZvciBwYXVzZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciIpOworICAgIGlmIChuYW1lID09ICJTbGlk
ZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJtb3ZpZSB0aW1lIHNjcnVi
YmVyIHRodW1iIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciB0aW1lbGluZSBzbGlkZXIg
dGh1bWIiKTsKKyAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInNlZWsgbW92aWUgYmFjayAzMCBzZWNvbmRzIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciBqdW1wIGJhY2sgMzAgc2Vjb25kcyBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJyZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSIsICJhY2Nlc3NpYmls
aXR5IGhlbHAgdGV4dCBmb3IgcmV0dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFsIHRpbWUgYnV0
dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJjdXJyZW50IG1vdmllIHRpbWUgaW4gc2Vjb25kcyIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZWxhcHNlZCB0aW1lIGRpc3BsYXkiKTsKKyAgICBpZiAo
bmFtZSA9PSAiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygibnVtYmVyIG9mIHNlY29uZHMgb2YgbW92aWUgcmVtYWluaW5nIiwgImFjY2Vzc2liaWxp
dHkgaGVscCB0ZXh0IGZvciByZW1haW5pbmcgdGltZSBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUg
PT0gIlN0YXR1c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY3VycmVu
dCBtb3ZpZSBzdGF0dXMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1vdmllIHN0YXR1
cyBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKKyAgICAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlZWsgcXVpY2tseSBiYWNrIiwgImFjY2Vzc2liaWxpdHkg
aGVscCB0ZXh0IGZvciBmYXN0IHJld2luZCBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vl
a0ZvcndhcmRCdXR0b24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygic2VlayBxdWlj
a2x5IGZvcndhcmQiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGZhc3QgZm9yd2FyZCBi
dXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJQbGF5IG1vdmllIGluIGZ1bGxzY3JlZW4gbW9kZSIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZW50ZXIgZnVsbHNjcmVlbiBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoInN0YXJ0IGRpc3BsYXlpbmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBzaG93IGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiSGlkZUNsb3NlZENhcHRpb25zQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoInN0b3AgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJp
bGl0eSBoZWxwIHRleHQgZm9yIGhpZGUgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOwogCi1TdHJp
bmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgY29u
dHJvbE5hbWUpCi17Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmxvY2FsaXpl
ZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb250cm9sTmFtZSk7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiBTdHJpbmcgbG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24odGltZSk7CisgICAg
aWYgKCFpc2Zpbml0ZSh0aW1lKSkKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImluZGVm
aW5pdGUgdGltZSIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgYW4gaW5kZWZpbml0ZSBt
ZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUiKTsKKworICAgIGludCBzZWNvbmRzID0gc3RhdGlj
X2Nhc3Q8aW50PihmYWJzZih0aW1lKSk7CisgICAgaW50IGRheXMgPSBzZWNvbmRzIC8gKDYwICog
NjAgKiAyNCk7CisgICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKKyAgICBpbnQg
bWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7CisgICAgc2Vjb25kcyAlPSA2MDsKKworICAg
IGlmIChkYXlzKQorICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9T
VFJJTkcoIiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29uZHMiLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+
PSAxIGRheSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7CisgICAgaWYgKGhvdXJz
KQorICAgICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUx
JGQgaG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAg
dGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMiKSwgaG91
cnMsIG1pbnV0ZXMsIHNlY29uZHMpOworICAgIGlmIChtaW51dGVzKQorICAgICAgICByZXR1cm4g
Zm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIiUxJGQgbWludXRlcyAlMiRkIHNl
Y29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGlt
ZSB2YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29uZHMpOworICAgIHJldHVybiBm
b3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiJTEkZCBzZWNvbmRzIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPCA2MCBz
ZWNvbmRzIiksIHNlY29uZHMpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1p
c3NpbmdUZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRh
dGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
InZhbHVlIG1pc3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBmb3JtIGNv
bnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0ZvckNoZWNrYm94VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgp
OworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0KIAog
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmlsZVRleHQoKQogewotICAg
IHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0
KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ0Zvck11bHRpcGxl
RmlsZVRleHQoKQogewotICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3Nh
Z2VWYWx1ZU1pc3NpbmdUZXh0KCk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVl
TWlzc2luZ0ZvclJhZGlvVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIHJldHVybiB2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAg
IHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKIH0KIAogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2Fs
aXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVz
c2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5
cGUiKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxU
ZXh0KCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoVGV4dCgpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAgIHJldHVybiB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKIH0KIAogU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAg
IHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKIH0KIAogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiB7Ci0gICAgcmV0dXJuIGxv
Y2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4
dCgpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJwYXR0ZXJuIG1pc21hdGNoIiwgIlZhbGlk
YXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyByZXF1aXJpbmcgYSBjb25zdHJh
aW5lZCB2YWx1ZSBhY2NvcmRpbmcgdG8gcGF0dGVybiIpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9u
U3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpOworICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJ0b28gbG9uZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGZvcm0gY29u
dHJvbCBlbGVtZW50cyB3aXRoIGEgdmFsdWUgbG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIGxl
bmd0aCIpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQo
Y29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NU
UklORygicmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9y
bSBjb250cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIik7CiB9CiAK
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYp
CiB7Ci0gICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQoKTsKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmFuZ2Ugb3Zl
cmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGgg
dmFsdWUgaGlnaGVyIHRoYW4gYWxsb3dlZCBtYXhpbXVtIik7CiB9CiAKIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikK
IHsKLSAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KCk7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInN0ZXAgbWlzbWF0
Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFs
dWUgbm90IHJlc3BlY3RpbmcgdGhlIHN0ZXAgYXR0cmlidXRlIik7CiB9CiAKLSNlbmRpZiAvLyBV
U0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShXSU4pCi1TdHJpbmcgbG9jYWxpemVkU3RyaW5nKGNvbnN0IGNoYXIqIGtleSkKLXsKLSAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChrZXksIHN0cmxlbihrZXkpKTsKLX0KLSNlbmRpZgotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCShyZXZpc2lvbiAxMDgyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw2ICsxNzQsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1l
KGNvbnN0IFN0cmluZyYgaG9zdCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBT
dHJpbmcgaHRtbFNlbGVjdE11bHRpcGxlSXRlbXMoc2l6ZV90IG51bSk7CisjZW5kaWYKKwogICAg
IFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUm
IHNpemUpOwogCiAgICAgU3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKTsKQEAg
LTE5OCwxMSArMjAyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1heGltdW0pOwogICAg
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiBi
YXNlLCBjb25zdCBTdHJpbmcmIHN0ZXApOwogCi0KKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAj
ZGVmaW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5nLCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxp
emVkU3RyaW5nKHN0cmluZykKICNkZWZpbmUgV0VCX1VJX1NUUklOR19LRVkoc3RyaW5nLCBrZXks
IGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoa2V5KQogCiAgICAgU3RyaW5n
IGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpOworI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAxMDgyOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsyOSw2
IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKIAotI2luY2x1ZGUgIkRlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBQbGF0Zm9ybVN0cmF0ZWdpZXMqIHNfcGxhdGZvcm1TdHJhdGVnaWVzOwpAQCAtNTksMTEgKzU3
LDYgQEAgYm9vbCBoYXNQbGF0Zm9ybVN0cmF0ZWdpZXMoKQogICAgIHJldHVybiBzX3BsYXRmb3Jt
U3RyYXRlZ2llczsKIH0KIAotTG9jYWxpemF0aW9uU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2ll
czo6Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKQotewotICAgIHJldHVybiBuZXcgRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAxMDgyOTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNyArMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb29raWVzU3RyYXRl
Z3k7CiBjbGFzcyBQYXN0ZWJvYXJkU3RyYXRlZ3k7CiBjbGFzcyBQbHVnaW5TdHJhdGVneTsKLWNs
YXNzIExvY2FsaXphdGlvblN0cmF0ZWd5OwogY2xhc3MgVmlzaXRlZExpbmtTdHJhdGVneTsKIAog
Y2xhc3MgUGxhdGZvcm1TdHJhdGVnaWVzIHsKQEAgLTUyLDEzICs1MSw2IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG1fcGx1Z2luU3RyYXRlZ3k7CiAgICAgfQogCi0gICAgTG9jYWxpemF0aW9u
U3RyYXRlZ3kqIGxvY2FsaXphdGlvblN0cmF0ZWd5KCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9s
b2NhbGl6YXRpb25TdHJhdGVneSkKLSAgICAgICAgICAgIG1fbG9jYWxpemF0aW9uU3RyYXRlZ3kg
PSBjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneSgpOwotICAgICAgICByZXR1cm4gbV9sb2NhbGl6
YXRpb25TdHJhdGVneTsKLSAgICB9Ci0KICAgICBWaXNpdGVkTGlua1N0cmF0ZWd5KiB2aXNpdGVk
TGlua1N0cmF0ZWd5KCkKICAgICB7CiAgICAgICAgIGlmICghbV92aXNpdGVkTGlua1N0cmF0ZWd5
KQpAQCAtNzYsNyArNjgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1TdHJhdGVnaWVzKCkK
ICAgICAgICAgOiBtX2Nvb2tpZXNTdHJhdGVneSgwKQogICAgICAgICAsIG1fcGx1Z2luU3RyYXRl
Z3koMCkKLSAgICAgICAgLCBtX2xvY2FsaXphdGlvblN0cmF0ZWd5KDApCiAgICAgICAgICwgbV92
aXNpdGVkTGlua1N0cmF0ZWd5KDApCiAgICAgICAgICwgbV9wYXN0ZWJvYXJkU3RyYXRlZ3koMCkK
ICAgICB7CkBAIC04OSwxMyArODAsMTEgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIENvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCkgPSAwOwogICAgIHZp
cnR1YWwgUGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCkgPSAwOwotICAgIHZp
cnR1YWwgTG9jYWxpemF0aW9uU3RyYXRlZ3kqIGNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCk7
CiAgICAgdmlydHVhbCBWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0
ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJv
YXJkU3RyYXRlZ3koKSA9IDA7IAogCiAgICAgQ29va2llc1N0cmF0ZWd5KiBtX2Nvb2tpZXNTdHJh
dGVneTsKICAgICBQbHVnaW5TdHJhdGVneSogbV9wbHVnaW5TdHJhdGVneTsKLSAgICBMb2NhbGl6
YXRpb25TdHJhdGVneSogbV9sb2NhbGl6YXRpb25TdHJhdGVneTsKICAgICBWaXNpdGVkTGlua1N0
cmF0ZWd5KiBtX3Zpc2l0ZWRMaW5rU3RyYXRlZ3k7CiAgICAgUGFzdGVib2FyZFN0cmF0ZWd5KiBt
X3Bhc3RlYm9hcmRTdHJhdGVneTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0xvY2FsaXplZFN0cmluZ3NRdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6ZWRTdHJpbmdzUXQuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDY5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBTdGFpa29zIENvbXB1
dGluZyBTZXJ2aWNlcyBJbmMuIDxpbmZvQHN0YWlrb3MubmV0PgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29w
eXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dp
YQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3Ry
aW5ncy5oIgorCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0
aW9uPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJTdWJtaXQgKGlucHV0IGVs
ZW1lbnQpIGFsdCB0ZXh0IGZvciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8gYWx0LCB0aXRsZSwg
b3IgdmFsdWUiKTsKK30KKworU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZXNldCIs
ICJkZWZhdWx0IGxhYmVsIGZvciBSZXNldCBidXR0b25zIGluIGZvcm1zIG9uIHdlYiBwYWdlcyIp
OworfQorCitTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUaGlzIGlzIGEgc2Vh
cmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiLCAidGV4dCB0aGF0IGFwcGVh
cnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0g
b2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKK30KKworU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1
bHRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiU3VibWl0IiwgImRlZmF1bHQgbGFiZWwgZm9yIFN1Ym1pdCBidXR0b25zIGluIGZv
cm1zIG9uIHdlYiBwYWdlcyIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJl
bCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiQ2hvb3NlIEZpbGUiLCAidGl0bGUgZm9yIGEgc2luZ2xlIGZpbGUgY2hvb3NlciBidXR0b24g
dXNlZCBpbiBIVE1MIGZvcm1zIik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlw
bGVGaWxlc0xhYmVsKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJDaG9vc2UgRmlsZXMiLCAidGl0bGUgZm9yIGEgbXVsdGlwbGUgZmlsZSBj
aG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMuIFRoaXMgdGl0bGUgc2hvdWxkIGJlIGFz
IHNob3J0IGFzIHBvc3NpYmxlLiIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVj
dGVkTGFiZWwoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIk5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0
dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKK30KKwor
U3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gZmlsZXMgc2VsZWN0ZWQi
LCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVu
IG5vIGZpbGVzIGFyZSBzZWxlY3RlZCBhbmQgdGhlIGJ1dHRvbiBhbGxvd3MgbXVsdGlwbGUgZmls
ZXMgdG8gYmUgc2VsZWN0ZWQiKTsKK30KKworU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRl
eHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIkRldGFpbHMiLCAidGV4dCB0byBkaXNwbGF5IGluIDxkZXRhaWxzPiB0YWcgd2hlbiBpdCBo
YXMgbm8gPHN1bW1hcnk+IGNoaWxkIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTGlua0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBpbiBOZXcgV2lu
ZG93IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdE
b3dubG9hZExpbmtUb0Rpc2soKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIlNhdmUgTGluay4uLiIsICJEb3dubG9hZCBMaW5rZWQgRmlsZSBj
b250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxp
bmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiQ29weSBMaW5rIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQor
eworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9w
ZW4gSW1hZ2UiLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkKK3sK
KyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTYXZl
IEltYWdlIiwgIkRvd25sb2FkIEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSIsICJD
b3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIEFkZHJlc3MiLCAiQ29weSBJ
bWFnZSBBZGRyZXNzIG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlblZpZGVvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gVmlkZW8iLCAiT3BlbiBWaWRlbyBpbiBOZXcgV2lu
ZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRv
dygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiT3BlbiBBdWRpbyIsICJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBWaWRlbyIs
ICJDb3B5IFZpZGVvIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBBdWRpbyIsICJDb3B5IEF1ZGlvIExp
bmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
Q29udHJvbHMoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlRvZ2dsZSBDb250cm9scyIsICJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIExvb3Ai
LCAiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJFbnRlciBGdWxsc2NyZWVuIiwgIlN3aXRjaCBW
aWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlBsYXkiLCAiUGxheSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiUGF1c2UiLCAiUGF1c2UiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiTXV0ZSIsICJNdXRlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBGcmFtZSIsICJPcGVuIEZyYW1lIGluIE5ldyBX
aW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHkoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNvcHkiLCAiQ29weSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJHbyBCYWNrIiwgIkJhY2sgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpCit7CisgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiR28gRm9yd2FyZCIs
ICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdTdG9wKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJTdG9wIiwgIlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVsb2FkIiwgIlJlbG9hZCBjb250ZXh0IG1lbnUg
aXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXQiLCAiQ3V0IGNv
bnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
UGFzdGUiLCAiUGFzdGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1NlbGVjdEFsbCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VsZWN0IEFsbCIsICJTZWxlY3QgQWxsIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
Tm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZygpCit7CisgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiSWdub3JlIiwg
Iklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQWRkIFRvIERpY3Rpb25hcnkiLCAiTGVhcm4gU3Bl
bGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1NlYXJjaFdlYigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiU2VhcmNoIFRoZSBXZWIiLCAiU2VhcmNoIFRoZSBXZWIgY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGljdGlvbmFy
eShjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIkxvb2sgVXAgSW4gRGljdGlvbmFyeSIsICJMb29rIFVwIGluIERpY3Rp
b25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJPcGVuIExpbmsiLCAiT3BlbiBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJZ25vcmUiLCAiSWdu
b3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NwZWxsaW5nTWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU3BlbGxpbmciLCAiU3BlbGxpbmcgYW5kIEdyYW1tYXIgY29u
dGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93
U3BlbGxpbmdQYW5lbChib29sIHNob3cpCit7CisgICAgcmV0dXJuIHNob3cgPyBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIi
LCAibWVudSBpdGVtIHRpdGxlIikgOgorICAgICAgICAgICAgICAgICAgUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJIaWRlIFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwgIm1l
bnUgaXRlbSB0aXRsZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiQ2hlY2sgU3BlbGxpbmciLCAiQ2hlY2sgc3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGlu
ZygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nIiwgIkNoZWNrIHNwZWxsaW5nIHdoaWxlIHR5
cGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaGVjayBHcmFtbWFyIFdpdGggU3BlbGxpbmciLCAi
Q2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRm9udHMiLCAiRm9udCBjb250ZXh0IHN1
Yi1tZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkJvbGQi
LCAiQm9sZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnSXRhbGljKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJJdGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVuZGVybGluZSIsICJVbmRlcmxpbmUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxp
bmUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIk91dGxpbmUiLCAiT3V0bGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKQoreworICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRpcmVjdGlvbiIsICJXcml0
aW5nIGRpcmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUZXh0IERpcmVjdGlvbiIsICJUZXh0IGRp
cmVjdGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRlZmF1bHQiLCAiRGVmYXVsdCB3cml0aW5nIGRpcmVj
dGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TGVmdFRvUmlnaHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUg
aXRlbSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJpZ2h0
IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkluc3BlY3QiLCAiSW5zcGVjdCBF
bGVtZW50IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBzZWFyY2hNZW51Tm9SZWNl
bnRTZWFyY2hlc1RleHQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIk5vIHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Igb25seSBpdGVt
IGluIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBp
bWFnZSwgd2hlbiBubyBzZWFyY2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7Cit9CisKK1N0cmlu
ZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWNlbnQgc2VhcmNoZXMiLCAibGFiZWwg
Zm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24g
dGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIik7Cit9
CisKK1N0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNsZWFyIHJlY2Vu
dCBzZWFyY2hlcyIsICJtZW51IGl0ZW0gaW4gUmVjZW50IFNlYXJjaGVzIG1lbnUgdGhhdCBlbXB0
aWVzIG1lbnUncyBjb250ZW50cyIpOworfQorCitTdHJpbmcgQVhXZWJBcmVhVGV4dCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBB
WExpbmtUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIEFYTGlzdE1hcmtlclRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhJbWFnZU1hcFRleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgQVhIZWFkaW5nVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWERlZmluaXRpb25MaXN0VGVybVRleHQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhE
ZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hB
Y3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYTWVudUxpc3RQb3B1
cEFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBtaXNzaW5nUGx1Z2luVGV4
dCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiTWlzc2luZyBQbHVnLWluIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Zy1p
biBpcyBtaXNzaW5nIik7Cit9CisKK1N0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBtdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4dCgpCit7
CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5r
bm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlzdGluZyBpdGVtIik7Cit9
CisKK1N0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNp
emUmIHNpemUpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiJTEgKCUyeCUzIHBpeGVscykiLCAiVGl0bGUgc3RyaW5nIGZvciBpbWFnZXMiKS5h
cmcoZmlsZW5hbWUpLmFyZyhzaXplLndpZHRoKCkpLmFyZyhzaXplLmhlaWdodCgpKTsKK30KKwor
U3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxvYWRpbmcuLi4iLCAiTWVkaWEg
Y29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHRoZSBtZWRpYSBpcyBsb2FkaW5nIik7Cit9
CisKK1N0cmluZyBtZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMaXZlIEJyb2Fk
Y2FzdCIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gd2F0Y2hpbmcgYSBs
aXZlIGJyb2FkY2FzdCIpOworfQorCisjaWYgRU5BQkxFKFZJREVPKQorCitTdHJpbmcgbG9jYWxp
emVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAg
aWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkF1ZGlvIEVsZW1lbnQiLCAiTWVkaWEgY29udHJv
bGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlZpZGVvIEVs
ZW1lbnQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIk11
dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJNdXRlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAg
ICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVW5tdXRlIEJ1dHRvbiIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkgQnV0
dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJQYXVz
ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlBhdXNlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAg
ICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2xpZGVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCisgICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNsaWRlciBUaHVtYiIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
UmV3aW5kIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFt
ZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiB0byBSZWFsLXRpbWUgQnV0dG9u
IiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJDdXJyZW50
VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJFbGFwc2VkIFRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikKKyAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmVtYWluaW5nIFRpbWUi
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlN0YXR1c0Rp
c3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJTdGF0dXMgRGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAg
ICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkZ1bGxzY3JlZW4gQnV0dG9uIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1
dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlNlZWsgRm9yd2FyZCBCdXR0b24iLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VlayBCYWNrIEJ1dHRvbiIsICJN
ZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcm
IG5hbWUpCit7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCisgICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkF1ZGlvIGVsZW1lbnQg
cGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgIk1lZGlhIGNvbnRyb2xsZXIg
ZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJWaWRlb0VsZW1lbnQiKQorICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJWaWRlbyBlbGVtZW50
IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCisgICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUgYXVkaW8gdHJh
Y2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJVbk11
dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJVbm11dGUgYXVkaW8gdHJhY2tzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOworICAgIGlmIChuYW1lID09ICJQbGF5QnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQmVnaW4gcGxheWJhY2siLCAiTWVk
aWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
UGF1c2UgcGxheWJhY2siLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7CisgICAgaWYgKG5h
bWUgPT0gIlNsaWRlciIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIiLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKKyAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTW92aWUgdGltZSBzY3J1
YmJlciB0aHVtYiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9
PSAiUmV3aW5kQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiUmV3aW5kIG1vdmllIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOworICAgIGlmIChuYW1lID09ICJSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKKyAgICAgICAg
cmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV0dXJuIHN0
cmVhbWluZyBtb3ZpZSB0byByZWFsLXRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7
CisgICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCisgICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkN1cnJlbnQgbW92aWUgdGlt
ZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiVGltZVJl
bWFpbmluZ0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNs
YXRlKCJRV2ViUGFnZSIsICJSZW1haW5pbmcgbW92aWUgdGltZSIsICJNZWRpYSBjb250cm9sbGVy
IGVsZW1lbnQiKTsKKyAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxheSIpCisgICAgICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkN1cnJlbnQgbW92
aWUgc3RhdHVzIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09
ICJGdWxsc2NyZWVuQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSBtb3ZpZSBpbiBmdWxsLXNjcmVlbiBtb2RlIiwgIk1l
ZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1
dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlNlZWsgcXVpY2tseSBiYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwor
ICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCisgICAgICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgcXVpY2tseSBmb3J3YXJkIiwg
Ik1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVz
Y3JpcHRpb24oZmxvYXQgdGltZSkKK3sKKyAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAgICAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJJbmRlZmlu
aXRlIHRpbWUiLCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpOworCisgICAgaW50IHNlY29uZHMg
PSAoaW50KWZhYnNmKHRpbWUpOworICAgIGludCBkYXlzID0gc2Vjb25kcyAvICg2MCAqIDYwICog
MjQpOworICAgIGludCBob3VycyA9IHNlY29uZHMgLyAoNjAgKiA2MCk7CisgICAgaW50IG1pbnV0
ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOworICAgIHNlY29uZHMgJT0gNjA7CisKKyAgICBpZiAo
ZGF5cykKKyAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiJTEgZGF5cyAlMiBob3VycyAlMyBtaW51dGVzICU0IHNlY29uZHMiLCAiTWVkaWEgdGlt
ZSBkZXNjcmlwdGlvbiIpLmFyZyhkYXlzKS5hcmcoaG91cnMpLmFyZyhtaW51dGVzKS5hcmcoc2Vj
b25kcyk7CisKKyAgICBpZiAoaG91cnMpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIGhvdXJzICUyIG1pbnV0ZXMgJTMgc2Vjb25kcyIs
ICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKGhvdXJzKS5hcmcobWludXRlcykuYXJnKHNl
Y29uZHMpOworCisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIG1pbnV0ZXMgJTIgc2Vjb25kcyIsICJNZWRp
YSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKKworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIiUxIHNlY29uZHMi
LCAiTWVkaWEgdGltZSBkZXNjcmlwdGlvbiIpLmFyZyhzZWNvbmRzKTsKK30KKworI2Vsc2UgLy8g
RU5BQkxFKFZJREVPKQorLy8gRklYTUU6ICNpZiBFTkFCTEUoVklERU8pIHNob3VsZCBiZSBpbiB0
aGUgYmFzZSBjbGFzcworCitTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmlu
Zyhjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFN0cmluZyYgbmFt
ZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRNZWRpYVRp
bWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShWSURFTykKKworCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1
ZU1pc3NpbmdUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yQ2hlY2ti
b3hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yRmlsZVRleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdGb3JNdWx0aXBsZUZpbGVUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yUmFkaW9UZXh0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVmFsdWVNaXNzaW5nRm9yU2VsZWN0VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JF
bWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVt
YWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVG9vTG9uZ1RleHQoaW50IHZhbHVlTGVuZ3RoLCBpbnQgbWF4TGVuZ3RoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtaW5pbXVtKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1heGlt
dW0pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiBi
YXNlLCBjb25zdCBTdHJpbmcmIHN0ZXApCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29uc3QgY2hhciog
a2V5KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwgc3RybGVuKGtleSkpOwor
fQorCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gMTA4MjkzKQorKysgU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0w
Mi0yMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
R2V0IHJpZCBvZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2FtIFdlaW5pZy4KKworICAgICAgICBNb3ZlIHRoZSBsb2NhbGl6YXRpb24gY29kZSBmcm9tIFBs
YXRmb3JtU3RyYXRlZ2llc1F0LmNwcAorICAgICAgICB0byBMb2NhbGl6ZWRTdHJpbmdzUXQuY3Bw
LgorCisgICAgICAgIEdldCByaWQgb2YgTG9jYWxpemF0aW9uU3RyYXRlZ3kgZnJvbSBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVn
aWVzUXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0
Lmg6CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNRdCk6CisKIDIwMTItMDItMTYgIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnJvd24tcGFwZXIgYmFnIGJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwCShyZXZp
c2lvbiAxMDgyOTMpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsMTEgKzY4LDYgQEAgUGx1Z2lu
U3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcgogICAgIHJldHVybiB0aGlzOwogfQog
Ci1Mb2NhbGl6YXRpb25TdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyZWF0ZUxvY2Fs
aXphdGlvblN0cmF0ZWd5KCkKLXsKLSAgICByZXR1cm4gdGhpczsKLX0KLQogVmlzaXRlZExpbmtT
dHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3ko
KQogewogICAgIHJldHVybiB0aGlzOwpAQCAtMTUwLDYwOCArMTQ1LDYgQEAgdm9pZCBQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6Z2V0UGx1Z2luSW5mbwogCiB9CiAKLQotLy8gTG9jYWxpemF0aW9uU3Ry
YXRlZ3kKLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjppbnB1dEVsZW1lbnRBbHRUZXh0
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSBhbHQgdGV4dCBmb3IgPGlucHV0PiBl
bGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJlc2V0IiwgImRlZmF1
bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9u
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiLCAi
dGV4dCB0aGF0IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFn
ZXMgaW4gdGhlIGZvcm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0OjpzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQotewotICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlN1Ym1pdCIsICJk
ZWZhdWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxh
YmVsKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgYSBzaW5nbGUgZmlsZSBjaG9vc2VyIGJ1dHRv
biB1c2VkIGluIEhUTUwgZm9ybXMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
OjpmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkKLXsKLSAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDaG9vc2UgRmlsZXMiLCAidGl0
bGUgZm9yIGEgbXVsdGlwbGUgZmlsZSBjaG9vc2VyIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMu
IFRoaXMgdGl0bGUgc2hvdWxkIGJlIGFzIHNob3J0IGFzIHBvc3NpYmxlLiIpOwotfQotCi1TdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJO
byBmaWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGlu
IEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxl
cyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1M
IGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBt
dWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKQotewotICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRldGFpbHMiLCAidGV4dCB0byBk
aXNwbGF5IGluIDxkZXRhaWxzPiB0YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxkIik7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmtJbk5ld1dpbmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBpbiBOZXcgV2luZG93IiwgIk9wZW4gaW4gTmV3IFdpbmRv
dyBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpCi17Ci0gICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2F2ZSBMaW5rLi4uIiwgIkRv
d25sb2FkIExpbmtlZCBGaWxlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgp
Ci17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
Q29weSBMaW5rIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2lu
ZG93KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJPcGVuIEltYWdlIiwgIk9wZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUg
aXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNhdmUgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSIsICJDb3B5IExp
bmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCi17Ci0gICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSBB
ZGRyZXNzIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBs
YXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRv
dygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiT3BlbiBWaWRlbyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiT3BlbiBBdWRpbyIsICJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciKTsKLX0KLQotU3Ry
aW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5r
VG9DbGlwYm9hcmQoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIkNvcHkgVmlkZW8iLCAiQ29weSBWaWRlbyBMaW5rIExvY2F0aW9uIik7Ci19
Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1
ZGlvTGlua1RvQ2xpcGJvYXJkKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEF1ZGlvIiwgIkNvcHkgQXVkaW8gTGluayBMb2NhdGlv
biIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhQ29udHJvbHMoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBDb250cm9scyIsICJUb2dnbGUgTWVkaWEgQ29u
dHJvbHMiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBs
YXliYWNrIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJ
dGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZp
ZGVvIHRvIEZ1bGxzY3JlZW4iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkiLCAiUGxheSIpOwotfQotCi1TdHJpbmcg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNl
IiwgIlBhdXNlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFNdXRlKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJh
bnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIiwgIk11dGUiKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3Bl
biBGcmFtZSIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsK
LX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5
KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJDb3B5IiwgIkNvcHkgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkdvIEJhY2siLCAiQmFjayBj
b250ZXh0IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNv
bnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiR28gRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQg
bWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1l
bnVJdGVtVGFnU3RvcCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiU3RvcCIsICJTdG9wIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWxv
YWQiLCAiUmVsb2FkIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnQ3V0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXQiLCAiQ3V0IGNvbnRleHQgbWVu
dSBpdGVtIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJ
dGVtVGFnUGFzdGUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlBhc3RlIiwgIlBhc3RlIGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsKCkK
LXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJT
ZWxlY3QgQWxsIiwgIlNlbGVjdCBBbGwgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgp
Ci17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
Tm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnSWdu
b3JlU3BlbGxpbmcoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIklnbm9yZSIsICJJZ25vcmUgU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0i
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdM
ZWFyblNwZWxsaW5nKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJBZGQgVG8gRGljdGlvbmFyeSIsICJMZWFybiBTcGVsbGluZyBjb250ZXh0
IG1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ1NlYXJjaFdlYigpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2VhcmNoIFRoZSBXZWIiLCAiU2VhcmNoIFRoZSBXZWIgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJikKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb29rIFVwIElu
IERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtIik7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmsoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIk9wZW4gTGluayIsICJPcGVuIExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFt
bWFyKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJJZ25vcmUiLCAiSWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01l
bnUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlNwZWxsaW5nIiwgIlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRl
bSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKLXsKLSAgICByZXR1cm4gc2hvdyA/IFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2hvdyBTcGVsbGluZyBhbmQgR3Jh
bW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKSA6Ci0gICAgICAgICAgICAgICAgICBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkhpZGUgU3BlbGxpbmcgYW5kIEdyYW1tYXIi
LCAibWVudSBpdGVtIHRpdGxlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ2hlY2sgU3BlbGxpbmciLCAiQ2hlY2sg
c3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQotewot
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNr
IFNwZWxsaW5nIFdoaWxlIFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29u
dGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250
ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKQotewotICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNoZWNrIEdyYW1tYXIgV2l0
aCBTcGVsbGluZyIsICJDaGVjayBncmFtbWFyIHdpdGggc3BlbGxpbmcgY29udGV4dCBtZW51IGl0
ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1U
YWdGb250TWVudSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiRm9udHMiLCAiRm9udCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQot
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJCb2xk
IiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKQotewotICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkl0YWxpYyIsICJJdGFsaWMgY29udGV4
dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0
TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlVuZGVybGluZSIsICJVbmRlcmxpbmUgY29udGV4dCBtZW51
IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0
ZW1UYWdPdXRsaW5lKCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViUGFnZSIsICJPdXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5n
RGlyZWN0aW9uTWVudSgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiRGlyZWN0aW9uIiwgIldyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgc3Vi
LW1lbnUgaXRlbSIpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRN
ZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUZXh0IERpcmVjdGlvbiIsICJUZXh0IGRpcmVj
dGlvbiBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKLXsKLSAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJEZWZhdWx0IiwgIkRl
ZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCi17
Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTGVm
dCB0byBSaWdodCIsICJMZWZ0IHRvIFJpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7Ci19Ci0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQo
KQotewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RF
bGVtZW50KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2Vi
UGFnZSIsICJJbnNwZWN0IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJj
aGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiTm8gcmVjZW50IHNlYXJjaGVzIiwgIkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVu
dSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3
aGVuIG5vIHNlYXJjaGVzIGhhdmUgYmVlbiBwZXJmb3JtZWQiKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJSZWNlbnQgc2Vh
cmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdo
ZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBt
ZW51IHRpdGxlIik7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6c2VhcmNoTWVu
dUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDbGVhciByZWNlbnQgc2VhcmNoZXMiLCAibWVudSBp
dGVtIGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMi
KTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFdlYkFyZWFUZXh0KCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5n
IFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWExpbmtUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpBWExpc3RNYXJrZXJUZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWEltYWdl
TWFwVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7
Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhIZWFkaW5nVGV4dCgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6OkFYQnV0dG9uQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNRdDo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
UXQ6OkFYVGV4dEZpZWxkQWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhD
aGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpBWFVu
Y2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6QVhN
ZW51TGlzdEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTWVudUxpc3RQ
b3B1cEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0
cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OkFYTGlua0FjdGlvblZl
cmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6Om1pc3NpbmdQbHVnaW5UZXh0KCkKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNaXNzaW5n
IFBsdWctaW4iLCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnLWluIGlzIG1pc3Np
bmciKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmFzaGVkUGx1Z2luVGV4
dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0K
LVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNp
Z25lZCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp1bmtub3duRmlsZVNpemVUZXh0KCkKLXsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbmtu
b3duIiwgIlVua25vd24gZmlsZXNpemUgRlRQIGRpcmVjdG9yeSBsaXN0aW5nIGl0ZW0iKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjppbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgKCUyeCUzIHBpeGVscykiLCAiVGl0bGUg
c3RyaW5nIGZvciBpbWFnZXMiKS5hcmcoZmlsZW5hbWUpLmFyZyhzaXplLndpZHRoKCkpLmFyZyhz
aXplLmhlaWdodCgpKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjptZWRpYUVs
ZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKLXsKLSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3Rh
dHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVkaWEgaXMgbG9hZGluZyIpOwotfQotCi1TdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzUXQ6Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKQot
ewotICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkxp
dmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB3YXRj
aGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7Ci19Ci0KLSNpZiBFTkFCTEUoVklERU8pCi0KLVN0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmlu
Zyhjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIp
Ci0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IkF1ZGlvIEVsZW1lbnQiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5h
bWUgPT0gIlZpZGVvRWxlbWVudCIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlZpZGVvIEVsZW1lbnQiLCAiTWVkaWEgY29udHJvbGxlciBl
bGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIEJ1dHRvbiIsICJN
ZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9u
IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiVW5tdXRlIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAo
bmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBsYXkgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxl
bWVudCIpOwotICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIEJ1dHRvbiIsICJN
ZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAg
ICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiU2xp
ZGVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJTbGlk
ZXJUaHVtYiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIlNsaWRlciBUaHVtYiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAg
ICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUmV3aW5kIEJ1dHRvbiIsICJNZWRpYSBjb250
cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRv
biIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIlJldHVybiB0byBSZWFsLXRpbWUgQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOwotICAgIGlmIChuYW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJFbGFwc2VkIFRpbWUi
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1h
aW5pbmdEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiUmVtYWluaW5nIFRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50
Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTdGF0dXMgRGlzcGxheSIsICJN
ZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1
dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkZ1bGxzY3JlZW4gQnV0dG9uIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwot
ICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlNlZWsgRm9yd2FyZCBCdXR0b24i
LCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNr
QnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiU2VlayBCYWNrIEJ1dHRvbiIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
LQotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0
Ojpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1l
KQotewotICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJBdWRpbyBlbGVtZW50IHBsYXli
YWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1l
bnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAgcmV0dXJuIFFD
b3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVmlkZW8gZWxlbWVudCBwbGF5
YmFjayBjb250cm9scyBhbmQgc3RhdHVzIGRpc3BsYXkiLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIGF1ZGlvIHRyYWNrcyIs
ICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiVW5NdXRlQnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiVW5tdXRlIGF1ZGlvIHRyYWNrcyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
LSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxp
Y2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkJlZ2luIHBsYXliYWNrIiwgIk1lZGlhIGNv
bnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCi0gICAg
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNl
IHBsYXliYWNrIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAgIGlmIChuYW1lID09
ICJTbGlkZXIiKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJR
V2ViUGFnZSIsICJNb3ZpZSB0aW1lIHNjcnViYmVyIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVu
dCIpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCi0gICAgICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1vdmllIHRpbWUgc2NydWJiZXIg
dGh1bWIiLCAiTWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlJl
d2luZEJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUo
IlFXZWJQYWdlIiwgIlJld2luZCBtb3ZpZSIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsK
LSAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlJldHVybiBzdHJlYW1p
bmcgbW92aWUgdG8gcmVhbC10aW1lIiwgIk1lZGlhIGNvbnRyb2xsZXIgZWxlbWVudCIpOwotICAg
IGlmIChuYW1lID09ICJDdXJyZW50VGltZURpc3BsYXkiKQotICAgICAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHRpbWUiLCAi
TWVkaWEgY29udHJvbGxlciBlbGVtZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5p
bmdEaXNwbGF5IikKLSAgICAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgi
UVdlYlBhZ2UiLCAiUmVtYWluaW5nIG1vdmllIHRpbWUiLCAiTWVkaWEgY29udHJvbGxlciBlbGVt
ZW50Iik7Ci0gICAgaWYgKG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDdXJyZW50IG1vdmllIHN0
YXR1cyIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiRnVs
bHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIlBsYXkgbW92aWUgaW4gZnVsbC1zY3JlZW4gbW9kZSIsICJNZWRpYSBj
b250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24i
KQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJTZWVrIHF1aWNrbHkgYmFjayIsICJNZWRpYSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLSAgICBp
ZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJTZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJNZWRp
YSBjb250cm9sbGVyIGVsZW1lbnQiKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpsb2Nh
bGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQotewotICAgIGlmICghaXNmaW5p
dGUodGltZSkpCi0gICAgICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkluZGVmaW5pdGUgdGltZSIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIik7Ci0K
LSAgICBpbnQgc2Vjb25kcyA9IChpbnQpZmFic2YodGltZSk7Ci0gICAgaW50IGRheXMgPSBzZWNv
bmRzIC8gKDYwICogNjAgKiAyNCk7Ci0gICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYw
KTsKLSAgICBpbnQgbWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7Ci0gICAgc2Vjb25kcyAl
PSA2MDsKLQotICAgIGlmIChkYXlzKQotICAgICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlMSBkYXlzICUyIGhvdXJzICUzIG1pbnV0ZXMgJTQgc2Vj
b25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKGRheXMpLmFyZyhob3VycykuYXJn
KG1pbnV0ZXMpLmFyZyhzZWNvbmRzKTsKLQotICAgIGlmIChob3VycykKLSAgICAgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgaG91cnMgJTIgbWlu
dXRlcyAlMyBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcoaG91cnMpLmFy
ZyhtaW51dGVzKS5hcmcoc2Vjb25kcyk7Ci0KLSAgICBpZiAobWludXRlcykKLSAgICAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJTEgbWludXRlcyAl
MiBzZWNvbmRzIiwgIk1lZGlhIHRpbWUgZGVzY3JpcHRpb24iKS5hcmcobWludXRlcykuYXJnKHNl
Y29uZHMpOwotCi0gICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBh
Z2UiLCAiJTEgc2Vjb25kcyIsICJNZWRpYSB0aW1lIGRlc2NyaXB0aW9uIikuYXJnKHNlY29uZHMp
OwotfQotCi0jZWxzZSAvLyBFTkFCTEUoVklERU8pCi0vLyBGSVhNRTogI2lmIEVOQUJMRShWSURF
Tykgc2hvdWxkIGJlIGluIHRoZSBiYXNlIGNsYXNzCi0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmcmIG5h
bWUpCi17Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzUXQ6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb25zdCBTdHJpbmcm
IG5hbWUpCi17Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzUXQ6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCi17Ci0g
ICAgcmV0dXJuIFN0cmluZygpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFZJREVPKQotCi0KLVN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdU
ZXh0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0K
LQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaFRleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlkYXRpb25NZXNzYWdlUGF0
dGVybk1pc21hdGNoVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
U3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1l
c3NhZ2VUb29Mb25nVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
U3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6dmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6
OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLQogLy8gVmlzaXRlZExpbmtTdHJhdGVn
eQogCiBib29sIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojppc0xpbmtWaXNpdGVkKFBhZ2UqIHBhZ2Us
IExpbmtIYXNoIGhhc2gsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IEF0b21pY1N0cmluZyYg
YXR0cmlidXRlVVJMKQpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0
Zm9ybVN0cmF0ZWdpZXNRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaAkocmV2aXNpb24gMTA4MjkzKQorKysgU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIElO
ZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAyMDA4
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKQEAgLTI5
LDcgKzI5LDYgQEAKICNkZWZpbmUgUGxhdGZvcm1TdHJhdGVnaWVzUXRfaAogCiAjaW5jbHVkZSA8
Q29va2llc1N0cmF0ZWd5Lmg+Ci0jaW5jbHVkZSA8TG9jYWxpemF0aW9uU3RyYXRlZ3kuaD4KICNp
bmNsdWRlIDxQbGF0Zm9ybVN0cmF0ZWdpZXMuaD4KICNpbmNsdWRlIDxQbHVnaW5TdHJhdGVneS5o
PgogI2luY2x1ZGUgPFZpc2l0ZWRMaW5rU3RyYXRlZ3kuaD4KQEAgLTM5LDcgKzM4LDcgQEAgY2xh
c3MgUGFnZTsKIGNsYXNzIFBhc3RlYm9hcmRTdHJhdGVneTsKIH0KIAotY2xhc3MgUGxhdGZvcm1T
dHJhdGVnaWVzUXQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzLCBwcml2YXRl
IFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpQbHVnaW5TdHJhdGVn
eSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3Jl
OjpWaXNpdGVkTGlua1N0cmF0ZWd5IHsKK2NsYXNzIFBsYXRmb3JtU3RyYXRlZ2llc1F0IDogcHVi
bGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBXZWJDb3JlOjpDb29raWVz
U3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29y
ZTo6VmlzaXRlZExpbmtTdHJhdGVneSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZSgpOwogCkBAIC00OSw3ICs0OCw2IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6UGxh
dGZvcm1TdHJhdGVnaWVzCiAgICAgdmlydHVhbCBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kqIGNy
ZWF0ZUNvb2tpZXNTdHJhdGVneSgpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UGx1Z2luU3RyYXRl
Z3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpMb2NhbGl6
YXRpb25TdHJhdGVneSogY3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKICAgICB2aXJ0dWFs
IFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3ko
KTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVi
b2FyZFN0cmF0ZWd5KCk7CiAgICAgCkBAIC02MCwxMDEgKzU4LDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2lu
SW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7
CiAKLSAgICAvLyBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneQotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJj
aGFibGVJbmRleEludHJvZHVjdGlvbigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc3VibWl0
QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9u
Q2hvb3NlRmlsZUxhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uQ2hv
b3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0
dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1
dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBkZWZh
dWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsKLSAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZElt
YWdlVG9EaXNrKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5SW1hZ2VUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDdXQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1Bhc3RlKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdT
ZWxlY3RBbGwoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05v
R3Vlc3Nlc0ZvdW5kKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdJZ25vcmVTcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTGVhcm5TcGVsbGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnU2VhcmNoV2ViKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOwotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdNZW51KCk7Ci0gICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNo
b3cpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZygpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZ1doaWxlVHlwaW5nKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1VuZGVybGluZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3V0bGluZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCk7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOwotICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKTsKLSAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygp
OwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5O
ZXdXaW5kb3coKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7Ci0gICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2Ny
ZWVuKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBs
YXkoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1
c2UoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSgpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNU
ZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNU
ZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFy
Y2hlc1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYV2ViQXJlYVRleHQoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYTGlua1RleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIEFYTGlzdE1hcmtlclRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYSW1hZ2VN
YXBUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWEhlYWRpbmdUZXh0KCk7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBBWERlZmluaXRpb25MaXN0VGVybVRleHQoKTsKLSAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWENo
ZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYVW5j
aGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWE1l
bnVMaXN0QWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhNZW51TGlzdFBv
cHVwQWN0aW9uVmVyYigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhMaW5rQWN0aW9uVmVy
YigpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKTsKLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNyYXNoZWRQbHVnaW5UZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6
OlN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdW5rbm93bkZpbGVTaXplVGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBXVEY6OlN0cmluZyYgZmlsZW5hbWUsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG1lZGlhRWxl
bWVudExvYWRpbmdTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG1lZGlhRWxl
bWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxv
Y2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4
dChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbG9jYWxpemVk
TWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKLSAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQo
KTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNo
VGV4dCgpOwotCiAgICAgLy8gV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneQogICAgIHZpcnR1
YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCwg
Y29uc3QgV2ViQ29yZTo6S1VSTCYgYmFzZVVSTCwgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGF0
dHJpYnV0ZVVSTCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZFZpc2l0ZWRMaW5rKFdlYkNvcmU6OlBh
Z2UqLCBXZWJDb3JlOjpMaW5rSGFzaCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwkocmV2aXNp
b24gMTA4MjkzKQorKysgU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0yMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmph
bWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBvZiB0aGUgTG9jYWxpemF0aW9uU3Ry
YXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
MzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBSZW1vdmUg
YSB1c2VsZXNzICNpbmNsdWRlIG9mIExvY2FsaXphdGlvblN0cmF0ZWd5LmguCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oOgorCiAyMDEyLTAyLTE1
ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgV2luQ0UgYnVpbGQgZml4IGFmdGVyIHIxMDc2MDYuCkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdp
ZXNXaW5DRS5oCShyZXZpc2lvbiAxMDgyOTMpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNv
cmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDYgQEAKICNkZWZpbmUgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0VfaAogCiAjaW5jbHVk
ZSAiQ29va2llc1N0cmF0ZWd5LmgiCi0jaW5jbHVkZSAiTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQbHVnaW5TdHJhdGVn
eS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RyYXRlZ3kuaCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>