<?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>150245</bug_id>
          
          <creation_ts>2015-10-16 11:35:47 -0700</creation_ts>
          <short_desc>Unify handling of JavaScriptCore scripts that are used in WebCore</short_desc>
          <delta_ts>2015-10-19 13:19:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>149929</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1133951</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-16 11:35:47 -0700</bug_when>
    <thetext>Splitting this out from 149929 to make sure it will work independently of the other changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133953</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-16 11:38:05 -0700</bug_when>
    <thetext>Should also move non-inspector scripts to Source/JavaScriptCore/Scripts, so we only need to copy over one directory to ForwardingHeaders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134013</commentid>
    <comment_count>2</comment_count>
      <attachid>263318</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-16 13:31:58 -0700</bug_when>
    <thetext>Created attachment 263318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134015</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-16 13:34:48 -0700</bug_when>
    <thetext>Attachment 263318 did not pass style-queue:


ERROR: Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py:69:  blank line at end of file  [pep8/W391] [5]
ERROR: Source/JavaScriptCore/Scripts/cssmin.py:28:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/JavaScriptCore/Scripts/cssmin.py:34:  whitespace before &apos;)&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/Scripts/cssmin.py:33:  at least two spaces before inline comment  [pep8/E261] [5]
Total errors found: 4 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134046</commentid>
    <comment_count>4</comment_count>
      <attachid>263330</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-16 14:20:45 -0700</bug_when>
    <thetext>Created attachment 263330
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134047</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-16 14:24:16 -0700</bug_when>
    <thetext>Attachment 263330 did not pass style-queue:


ERROR: Source/JavaScriptCore/Scripts/cssmin.py:28:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/JavaScriptCore/Scripts/cssmin.py:34:  whitespace before &apos;)&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/Scripts/cssmin.py:33:  at least two spaces before inline comment  [pep8/E261] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py:69:  blank line at end of file  [pep8/W391] [5]
Total errors found: 4 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134057</commentid>
    <comment_count>6</comment_count>
      <attachid>263330</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-10-16 14:45:09 -0700</bug_when>
    <thetext>Comment on attachment 263330
Proposed Fix

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

&gt; Source/JavaScriptCore/PlatformWin.cmake:35
&gt; +file(APPEND &quot;${JavaScriptCore_POST_BUILD_COMMAND}&quot; &quot;@xcopy /y /d /f \&quot;${DERIVED_SOURCES_DIR}/JavaScriptCore/Scripts/*.*\&quot; \&quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore/Scripts\&quot; &gt;nul 2&gt;nul\n&quot;)

I think this should be a file(COPY ...) command in CMake instead of putting this in the post build command.  You might need to use file(GLOB ...) if that doesn&apos;t work.

&gt; Source/WebCore/CMakeLists.txt:3370
&gt; +    DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/inline-and-minify-stylesheets-and-scripts.py

I&apos;m not sure you can do this.  When CMake runs, this file won&apos;t exist because it is copied in the post build command.  It will probably fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134075</commentid>
    <comment_count>7</comment_count>
      <attachid>263330</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-16 15:18:38 -0700</bug_when>
    <thetext>Comment on attachment 263330
Proposed Fix

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

&gt;&gt; Source/WebCore/CMakeLists.txt:3370
&gt;&gt; +    DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/inline-and-minify-stylesheets-and-scripts.py
&gt; 
&gt; I&apos;m not sure you can do this.  When CMake runs, this file won&apos;t exist because it is copied in the post build command.  It will probably fail.

Yup, it failed on EWS. If it&apos;s not in the post build command and simply a file(COPY command, it should work, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134088</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-10-16 15:45:58 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 263330 [details]
&gt; Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=263330&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/CMakeLists.txt:3370
&gt; &gt;&gt; +    DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/inline-and-minify-stylesheets-and-scripts.py
&gt; &gt; 
&gt; &gt; I&apos;m not sure you can do this.  When CMake runs, this file won&apos;t exist because it is copied in the post build command.  It will probably fail.
&gt; 
&gt; Yup, it failed on EWS. If it&apos;s not in the post build command and simply a
&gt; file(COPY command, it should work, right?
I think so.  By the time it gets to WebCore/CMakeLists.txt it will have already copied the file, so it should be able to find it.  Keep the xcopy in the post build script, though, because otherwise an incremental build that touches a script but not any CMake files would fail because it would be looking at the old copy in ForwardingHeaders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134108</commentid>
    <comment_count>9</comment_count>
      <attachid>263347</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-16 16:27:56 -0700</bug_when>
    <thetext>Created attachment 263347
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134109</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-16 16:29:27 -0700</bug_when>
    <thetext>Attachment 263347 did not pass style-queue:


ERROR: Source/JavaScriptCore/PlatformWin.cmake:36:  One space between command &quot;endforeach&quot; and its parentheses, should be &quot;endforeach (&quot;  [whitespace/parentheses] [5]
ERROR: Source/JavaScriptCore/Scripts/cssmin.py:28:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/JavaScriptCore/Scripts/cssmin.py:34:  whitespace before &apos;)&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/Scripts/cssmin.py:33:  at least two spaces before inline comment  [pep8/E261] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py:69:  blank line at end of file  [pep8/W391] [5]
Total errors found: 5 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134364</commentid>
    <comment_count>11</comment_count>
      <attachid>263347</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-18 15:32:49 -0700</bug_when>
    <thetext>Comment on attachment 263347
Proposed Fix

This version seems to work for EWS, so maybe we should give it a try before the tree gets busy again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134613</commentid>
    <comment_count>12</comment_count>
      <attachid>263347</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-10-19 10:33:15 -0700</bug_when>
    <thetext>Comment on attachment 263347
Proposed Fix

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

&gt; Source/WebCore/CMakeLists.txt:823
&gt; +        set(JavaScriptCore_SCRIPTS_DIR &quot;${CMAKE_BINARY_DIR}/../include/private/JavaScriptCore&quot;)

I think this should be .../JavaScriptCore/Scripts if the scripts are going to be copied into a subdirectory called Scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134627</commentid>
    <comment_count>13</comment_count>
      <attachid>263491</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-19 11:02:37 -0700</bug_when>
    <thetext>Created attachment 263491
For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134670</commentid>
    <comment_count>14</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-19 13:19:22 -0700</bug_when>
    <thetext>Committed r191312: &lt;http://trac.webkit.org/changeset/191312&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263318</attachid>
            <date>2015-10-16 13:31:58 -0700</date>
            <delta_ts>2015-10-16 14:20:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150245-20151016133119.patch</filename>
            <type>text/plain</type>
            <size>122845</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YjQ1OGYwYmIzN2YzZTg4MmVkMTNiNWQ2NTkzZmE0NTM2OTE3NDQyLi4zY2UwNWE2MGMzNmFkZmEw
YmY4NjI3OTZkMDEyMWQ3MmNiZDQ3NmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0xMC0xNiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVbmlmeSBoYW5kbGluZyBvZiBKYXZhU2NyaXB0Q29yZSBzY3JpcHRzIHRoYXQgYXJl
IHVzZWQgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUwMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSBhbGwgc3RhbmRhbG9uZSBKYXZhU2NyaXB0Q29yZSBzY3JpcHRzIHRoYXQg
YXJlIHVzZWQgYnkgV2ViQ29yZSBpbnRvIHRoZQorICAgICAgICBKYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzIGRpcmVjdG9yeS4gVXNlIEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSIHRvIHJlZmVyCisg
ICAgICAgIHRvIHRoZSBwYXRoIGZvciB0aGVzZSBzY3JpcHRzLgorCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKworICAgICAgICAgICAgRGVmaW5lIGFuZCB1c2UgSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICAgICBNYWtlIGEgbmV3IGdyb3VwIGluIHRoZSBYY29k
ZSBwcm9qZWN0IGFuZCBjbGVhbiB1cCByZWZlcmVuY2VzLgorCisgICAgICAgICogUGxhdGZvcm1X
aW4uY21ha2U6CisKKyAgICAgICAgICAgIEZvciBXaW5kb3dzLCBjb3B5IHRoZXNlIHNjcmlwdHMg
b3ZlciB0byBGb3J3YXJkaW5nSGVhZGVycy9TY3JpcHRzIHNpbmNlIHRoZXkKKyAgICAgICAgICAg
IGNhbm5vdCBiZSB1c2VkIGRpcmVjdGx5IGZyb20gSkFWQVNDUklQVENPUkVfRElSIGluIEFwcGxl
V2luIGJ1aWxkcy4gRG8gdGhlIHNhbWUKKyAgICAgICAgICAgIHRoaW5nIGZvciBib3RoIFdpbmRv
d3MgdmFyaWFudHMgdG8gYmUgY29uc2lzdGVudCBhYm91dCBpdC4KKworICAgICAgICAqIFNjcmlw
dHMvY3NzbWluLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2Nzc21pbi5weS4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVk
LWluc3BlY3Rvci1qc29uLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5LgorICAg
ICAgICAqIFNjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnM6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMuCisgICAgICAgICogU2NyaXB0cy9p
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weTogUmVuYW1lZCBmcm9t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlm
eS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weS4KKyAgICAgICAgKiBTY3JpcHRzL2pzbWluLnB5
OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2pz
bWluLnB5LgorICAgICAgICAqIFNjcmlwdHMveHhkLnBsOiBSZW5hbWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbC4KKwogMjAxNS0xMC0xNiAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBp
c3N1ZXMgd2l0aCBUeXBlZEFycmF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg5NzBhNjM5YmIzMjQ3ZDJkYTcz
ZDNhNjg0MGEwZjI5MjNkYjE4YmEuLjEzYWJhODhlMGMwNTFlNjFlMDljZWRlZWI3OGQ2ZjhiNjI5
YjRlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0xMC0xNiAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbmlmeSBoYW5kbGluZyBvZiBKYXZhU2Ny
aXB0Q29yZSBzY3JpcHRzIHRoYXQgYXJlIHVzZWQgaW4gV2ViQ29yZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMjQ1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIgdmFyaWFibGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAgICAgTm8gbmVlZCB0byBleHBvcnQgb3RoZXIg
dmFyaWFibGVzIGxpa2UgSW5zcGVjdG9yU2NyaXB0cyBhbnltb3JlLgorCiAyMDE1LTEwLTE2ICBL
ZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgdmFsdWUgc2Fu
aXRpemF0aW9uIGFsZ29yaXRobSBmb3IgaW5wdXRbdHlwZT11cmxdIHNob3VsZCBzdHJpcCB3aGl0
ZXNwYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAw
NDY2OGRlNWJjOTA4MzVjZjhjMDI0ZmI1ZGI4M2RhOTQ5MWUzNWYzLi45MDkxMTJkNDBmNGRmZTJk
ZmRlYTRkNGJjNzkwOGIyOWI0Mzk2OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtNzgsNiArNzgsOCBAQCBhbGwgOiBcCiBQWVRIT04gPSBweXRob24K
IFBFUkwgPSBwZXJsCiAKK0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSID0gJChKYXZhU2NyaXB0
Q29yZSkvU2NyaXB0cworCiBpZmVxICgkKE9TKSxXaW5kb3dzX05UKQogICAgIERFTEVURSA9IGNt
ZCAvL0MgZGVsCiBlbHNlCkBAIC04Niw5ICs4OCw5IEBAIGVuZGlmCiAjIC0tLS0tLS0tCiAKIC5Q
SE9OWTogSlNDQnVpbHRpbnMKLUpTQ0J1aWx0aW5zOiAkKEphdmFTY3JpcHRDb3JlKS9nZW5lcmF0
ZS1qcy1idWlsdGlucyBKU0NCdWlsdGlucy5oIEpTQ0J1aWx0aW5zLmNwcAotSlNDQnVpbHRpbnMu
aDogJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdGUtanMtYnVpbHRpbnMgJChKYXZhU2NyaXB0Q29y
ZSkvYnVpbHRpbnMgSlNDQnVpbHRpbnNTb3VyY2VzCi0JJChQWVRIT04pICQoSmF2YVNjcmlwdENv
cmUpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQtZGlyZWN0b3J5ICQoSmF2YVNjcmlwdENv
cmUpL2J1aWx0aW5zIC0tb3V0cHV0ICRACitKU0NCdWlsdGluczogJChKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMgSlNDQnVpbHRpbnMuaCBKU0NCdWlsdGlu
cy5jcHAKK0pTQ0J1aWx0aW5zLmg6ICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVy
YXRlLWpzLWJ1aWx0aW5zICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zIEpTQ0J1aWx0aW5zU291
cmNlcworCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9nZW5lcmF0ZS1q
cy1idWlsdGlucyAtLWlucHV0LWRpcmVjdG9yeSAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucyAt
LW91dHB1dCAkQAogCiBKU0NCdWlsdGlucy5jcHA6IEpTQ0J1aWx0aW5zLmgKIApAQCAtMTg1LDgg
KzE4Nyw4IEBAIElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUyA9IFwKIAkkKEphdmFTY3JpcHRD
b3JlKS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkgXAog
CSQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yLnB5
IFwKIAkkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL21vZGVscy5w
eSBcCi0JJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkgXAogCSQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3Jp
cHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSBcCisJJChKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkg
XAogIwogCiBhbGwgOiBcCkBAIC0yMDIsMTcgKzIwNCwxNyBAQCBhbGwgOiBcCiBFbmFibGVkSW5z
cGVjdG9yRG9tYWlucyA6ICQoSmF2YVNjcmlwdENvcmUpL1VwZGF0ZUNvbnRlbnRzLnB5IGZvcmNl
CiAJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmUpL1VwZGF0ZUNvbnRlbnRzLnB5ICckKElOU1BF
Q1RPUl9ET01BSU5TKScgJEAKIAotQ29tYmluZWREb21haW5zLmpzb24gOiBpbnNwZWN0b3Ivc2Ny
aXB0cy9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAkKElOU1BFQ1RPUl9ET01B
SU5TKSBFbmFibGVkSW5zcGVjdG9yRG9tYWlucwotCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3Jl
KS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAk
KElOU1BFQ1RPUl9ET01BSU5TKSA+IC4vQ29tYmluZWREb21haW5zLmpzb24KK0NvbWJpbmVkRG9t
YWlucy5qc29uIDogJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkgJChJTlNQRUNUT1JfRE9NQUlOUykgRW5hYmxlZEluc3BlY3Rv
ckRvbWFpbnMKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJh
dGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgJChJTlNQRUNUT1JfRE9NQUlOUykgPiAuL0Nv
bWJpbmVkRG9tYWlucy5qc29uCiAKICMgSW5zcGVjdG9yIEJhY2tlbmQgRGlzcGF0Y2hlcnMsIEZy
b250ZW5kIERpc3BhdGNoZXJzLCBUeXBlIEJ1aWxkZXJzCiBJbnNwZWN0b3JGcm9udGVuZERpc3Bh
dGNoZXJzLmggOiBDb21iaW5lZERvbWFpbnMuanNvbiAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NS
SVBUUykKIAkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5IC0tZnJhbWV3b3JrIEphdmFTY3Jp
cHRDb3JlIC0tb3V0cHV0RGlyIC4gLi9Db21iaW5lZERvbWFpbnMuanNvbgogCi1JbmplY3RlZFNj
cmlwdFNvdXJjZS5oIDogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzICQoSmF2YVNj
cmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL2pzbWluLnB5ICQoSmF2YVNjcmlwdENvcmUpL2lu
c3BlY3Rvci9zY3JpcHRzL3h4ZC5wbAorSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCA6IGluc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9q
c21pbi5weSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwKIAllY2hvICIvLyMg
c291cmNlVVJMPV9fV2ViSW5zcGVjdG9ySW5qZWN0ZWRTY3JpcHRfXyIgPiAuL0luamVjdGVkU2Ny
aXB0U291cmNlLm1pbi5qcwotCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3Iv
c2NyaXB0cy9qc21pbi5weSA8ICQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdFNvdXJjZS5qcyA+PiAuL0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5qcwotCSQoUEVSTCkg
JChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMveHhkLnBsIEluamVjdGVkU2NyaXB0
U291cmNlX2pzIC4vSW5qZWN0ZWRTY3JpcHRTb3VyY2UubWluLmpzIEluamVjdGVkU2NyaXB0U291
cmNlLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvanNtaW4ucHkg
PCAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgPj4g
Li9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMKKwkkKFBFUkwpICQoSmF2YVNjcmlwdENvcmVf
U0NSSVBUU19ESVIpL3h4ZC5wbCBJbmplY3RlZFNjcmlwdFNvdXJjZV9qcyAuL0luamVjdGVkU2Ny
aXB0U291cmNlLm1pbi5qcyBJbmplY3RlZFNjcmlwdFNvdXJjZS5oCiAJJChERUxFVEUpIEluamVj
dGVkU2NyaXB0U291cmNlLm1pbi5qcwogCiAjIFdlYiBSZXBsYXkgaW5wdXRzIGdlbmVyYXRvcgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZjM0MjRmOTIzMDhiODgyNTgyMzI5ZDNi
YmYyNDlkNDc1MWMxNzYwLi4wNTY2MzZjZjIzYTBmZjliOGVkZDc4OGQ1NjFmMTQ0OWQ5N2MwODMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTU2LDcgKzk1Niw2IEBACiAJCTJB
REZBMjYzMThFRjM1NDAwMDRGOUZDQyAvKiBHQ0xvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFERkEyNjIxOEVGMzU0MDAwNEY5RkNDIC8q
IEdDTG9nZ2luZy5jcHAgKi87IH07CiAJCTJBRjczODJDMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1
Y3R1cmVJRFRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJBRjczODJBMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmNwcCAq
LzsgfTsKIAkJMkFGNzM4MkQxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRjczODJCMThC
QkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMkRGQjhBRkUxQkIzMjNCRDAwOTNEMjM3IC8q
IGdlbmVyYXRlLWpzLWJ1aWx0aW5zIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTcxREE4MEQxODgwRDcxRjAwRDFGMjk5IC8qIGdlbmVyYXRlLWpzLWJ1aWx0
aW5zICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3
MUQ4NDJEMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8q
IGxpYnouZHlsaWIgKi87IH07CiAJCTQxMzU5Q0YzMEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29u
dmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDIxMjAyMjkwQUQ0MzEwQzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi87IH07CiAJCTQx
REVBMTMyMUI5RjMxNjMwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAv
KiBCdWlsdGluVXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTIxNSw2ICsxMjE0LDEyIEBACiAJCTk3ODgwMTQxMTQ3MUFEOTIwMDQxQjAx
NiAvKiBKU0RhdGVNYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5Nzg4RkMyMzE0NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5MjhGRjNCMThBQzRB
RUMwMEI4Q0YxMiAvKiBKU1JlcGxheUlucHV0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTI4RkYzOTE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBs
YXlJbnB1dHMuY3BwICovOyB9OwogCQk5OTI4RkYzQzE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBs
YXlJbnB1dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk5MjhGRjNBMThBQzRBRUMwMEI4Q0YxMiAvKiBKU1JlcGxheUlucHV0cy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5NTlFOTJCMUJEMTdGQTQw
MDFBQTQxMyAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTU5RTkyNzFCRDE3RkEwMDAxQUE0MTMgLyogY3NzbWluLnB5ICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5NTlFOTJDMUJEMTdG
QTQwMDFBQTQxMyAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTlFOTI4MUJEMTdGQTAwMDFBQTQxMyAvKiBnZW5l
cmF0ZS1qcy1idWlsdGlucyAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5OTU5RTkyRDFCRDE3RkE0MDAxQUE0MTMgLyoganNtaW4ucHkgaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU5RTkyOTFCRDE3RkEwMDAx
QUE0MTMgLyoganNtaW4ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOTk1OUU5MkUxQkQxN0ZBNDAwMUFBNDEzIC8qIHh4ZC5wbCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTlFOTJBMUJEMTdGQTAwMDFB
QTQxMyAvKiB4eGQucGwgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTk1OUU5MzExQkQxODI3MjAwMUFBNDEzIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWlu
c3BlY3Rvci1qc29uLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTk1OUU5MkYxQkQxODFGNjAwMUFBNDEzIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWluc3Bl
Y3Rvci1qc29uLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTk5NTlFOTMyMUJEMTgyNzkwMDFBQTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHls
ZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5NTlFOTMwMUJEMTgxRjYwMDFBQTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlm
eS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5OTYyMzFFOTE4RDE4MDQyMDBDMDNGREEgLyogSW5zcGVj
dG9yQmFja2VuZENvbW1hbmRzLmpzIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTUzMjQzOTYxODU2QTQ3NTAwMkVENjkyIC8qIEluc3BlY3RvckJhY2tlbmRD
b21tYW5kcy5qcyAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5OUNDMEI2MjE4QkU5OTQ2MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0
c1RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5RTQ1QTFFMThBMUIxRTcwMDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRz
VGVtcGxhdGVzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTk5Q0MwQjYzMThCRTk5NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5w
dXRzLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlF
NDVBMUQxOEExQjFFNzAwMjZEODhGIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkgKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyOTYsNyAr
MTMwMSw2IEBACiAJCUE1MzI0MzhBMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVu
ZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNTMyNDM4NDE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRj
aGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE1MzI0MzhCMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUzMjQzODUx
ODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi87IH07CiAJ
CUE1MzI0MzhDMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzI0Mzg2MTg1
NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNTMyNDM5NDE4NTY5NzA5MDAy
RUQ2OTIgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTMyNDM5MTE4NTY5NkU2MDAyRUQ2
OTIgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTUzMjQzOTgxODU2QTQ4OTAwMkVE
NjkyIC8qIENvbWJpbmVkRG9tYWlucy5qc29uIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTUzMjQzOTUxODU2QTQ3NTAwMkVENjkyIC8qIENvbWJpbmVkRG9t
YWlucy5qc29uICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE1MzM5RUM2MUJCMzk5QTYwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzM5RUM1MUJCMzk5
OTAwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTMzOUVDNzFCQjM5OUE5MDA1NEYwMDUgLyog
SW5zcGVjdG9ySGVhcEFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1MzM5RUM0MUJCMzk5OTAwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdl
bnQuY3BwICovOyB9OwpAQCAtMTMzMSwxMCArMTMzNSw2IEBACiAJCUE1ODQwMzIwMThCRkZCRTEw
MDVBMDgxMSAvKiBJbnNwZWN0b3JBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTVDRUVFMTMxODdGM0JBRDAwRTU1Qzk5IC8qIEluc3BlY3RvckFn
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTU4NDBFMjAxODdCN0I4NjAwODQzQjEwIC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODQwRTFFMTg3QjdC
ODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAgKi87IH07CiAJCUE1ODQwRTIx
MTg3QjdCODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NDBFMUYxODdCN0I4NjAwODQzQjEw
IC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTU4NDBFMjcxODdDOTgxRTAwODQzQjEwIC8qIGNzc21pbi5w
eSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODQwRTI2
MTg3Qzk4MDcwMDg0M0IxMCAvKiBjc3NtaW4ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTU4NDBFMjkxODdDQTVFNjAwODQzQjEwIC8qIGlubGlu
ZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5IGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NDBFMjgxODdDQTVCODAwODQzQjEwIC8q
IGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE1ODQwRTJBMTg3Q0E3NTkw
MDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNTEzRTVDNTE4NUY5MkYwMDA3RTk1QUQgLyogeHhkLnBsICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE1ODQwRTJCMTg3Q0E3NUIwMDg0
M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1MTNFNUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNThDMDI0MjE4RTRBNDFBMDAw
MzJCQzUgLyogSlNDb250ZXh0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU4QzAyNDExOEU0QTQxQTAwMDMyQkM1IC8qIEpTQ29udGV4dFBy
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNThFMzU5MTE4NjBERUNGMDAxRjI0RkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1OEUzNTkwMTg2MERF
QzcwMDFGMjRGRSAvKiBJbmplY3RlZFNjcmlwdEhvc3QuY3BwICovOyB9OwogCQlBNTkzQ0Y3QzE4
NDAzNjAzMDBCRkNFMjcgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU5M0NGN0ExODQwMzYwMzAw
QkZDRTI3IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLzsgfTsKQEAgLTMxMjQs
NiArMzEyNCwxMiBAQAogCQk5OTI4RkYzOTE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBsYXlJbnB1
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXBsYXlJbnB1
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTI4RkYzQTE4QUM0QUVDMDBC
OENGMTIgLyogSlNSZXBsYXlJbnB1dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNSZXBsYXlJbnB1dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyOEZG
M0QxOEFDNEIxQzAwQjhDRjEyIC8qIEpTSW5wdXRzLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmpzb247
IHBhdGggPSBKU0lucHV0cy5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTU5
RTkyNzFCRDE3RkEwMDAxQUE0MTMgLyogY3NzbWluLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
cHl0aG9uOyBwYXRoID0gY3NzbWluLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTU5RTkyODFCRDE3RkEwMDAxQUE0MTMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtanMtYnVpbHRpbnMiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTU5RTkyOTFCRDE3RkEwMDAxQUE0MTMgLyoganNt
aW4ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBqc21pbi5weTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk1OUU5MkExQkQxN0ZBMDAwMUFBNDEzIC8qIHh4
ZC5wbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBlcmw7IHBhdGggPSB4eGQucGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NTlFOTJGMUJEMTgxRjYwMDFBQTQxMyAvKiBnZW5lcmF0
ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhv
bjsgcGF0aCA9ICJnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NTlFOTMwMUJEMTgxRjYwMDFBQTQxMyAvKiBpbmxpbmUt
YW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9ICJpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2Ny
aXB0cy5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RTQ1QTFEMThBMUIxRTcw
MDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQucHl0aG9uOyBwYXRoID0gQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNDVBMUUxOEExQjFFNzAwMjZEODhGIC8qIENvZGVH
ZW5lcmF0b3JSZXBsYXlJbnB1dHNUZW1wbGF0ZXMucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5w
eXRob247IHBhdGggPSBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU0NUExRjE4QTFCMjU5MDAyNkQ4OEYgLyogRW1w
dHlJbnB1dEN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eUlu
cHV0Q3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTkyLDggKzMxOTgs
NiBAQAogCQlBNTEzRTVCQzE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbmpl
Y3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTEzRTVCRDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUxM0U1QzMxODVG
OTJDOTAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE1MTNFNUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnB5dGhvbjsgcGF0aCA9IGpzbWluLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBNTEzRTVDNTE4NUY5MkYwMDA3RTk1QUQgLyogeHhkLnBsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQucGVybDsgcGF0aCA9IHh4ZC5wbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTUxM0U1QzYxODVGOTQzNjAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0U291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MTNFNUM4MTg1Rjk2MjQwMDdFOTVBRCAvKiBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTUxM0U1QzkxODVGOTYyNDAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0TWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdE1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMDYsNyArMzIxMCw2IEBACiAJCUE1MzI0
Mzg1MTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTUzMjQzODYxODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclBy
b3RvY29sT2JqZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUzMjQzOEQxODU2OTZDQTAwMkVENjky
IC8qIHByb3RvY29sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZm9sZGVyOyBwYXRoID0gcHJvdG9jb2w7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE1MzI0MzkxMTg1Njk2RTYwMDJFRDY5MiAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0
b3ItanNvbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9ICJnZW5lcmF0
ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1MzI0Mzk1MTg1NkE0NzUwMDJFRDY5MiAvKiBDb21iaW5lZERvbWFpbnMuanNvbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuanNvbjsgcGF0aCA9IENvbWJpbmVkRG9tYWlucy5qc29uOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNTMyNDM5NjE4NTZBNDc1MDAyRUQ2OTIgLyogSW5zcGVjdG9y
QmFja2VuZENvbW1hbmRzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNTMzOUVDNDFCQjM5OTkwMDA1NEYwMDUgLyogSW5zcGVjdG9ySGVhcEFnZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckhlYXBBZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjM5LDggKzMyNDIsNiBAQAogCQlB
NTdEMjNGMDE4OTFCNUI0MDAzMUM3RkEgLyogQ29udGVudFNlYXJjaFV0aWxpdGllcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50U2VhcmNoVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1ODQwRTFFMTg3QjdCODYwMDg0M0IxMCAvKiBJ
bmplY3RlZFNjcmlwdE1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1ODQwRTFGMTg3QjdCODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdE1vZHVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTg0MEUyNjE4N0M5ODA3MDA4NDNCMTAgLyog
Y3NzbWluLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gY3NzbWluLnB5
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTg0MEUyODE4N0NBNUI4MDA4NDNCMTAg
LyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVl
dHMtYW5kLXNjcmlwdHMucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNThDMDI0
MTE4RTRBNDFBMDAwMzJCQzUgLyogSlNDb250ZXh0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0NvbnRleHRQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE1OEUzNTkwMTg2MERFQzcwMDFGMjRGRSAvKiBJbmplY3RlZFNjcmlwdEhvc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU5M0NGN0ExODQwMzYwMzAwQkZDRTI3IC8qIEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMzMTksNyArMzMyMCw2IEBACiAJCUE3MTIzNkU0MTE5NUYzM0MwMEJEMjE3NCAv
KiBKSVRPcGNvZGVzMzJfNjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSklUT3Bjb2RlczMyXzY0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcx
OEY2MUExMTc1NEEyMTAwMjQ2NUE3IC8qIFJlZ0V4cEppdFRhYmxlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBKaXRUYWJsZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTcxOEY4MjExMTc4RUI0QjAwMjQ2NUE3IC8qIGNyZWF0ZV9yZWdleF90YWJs
ZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnB5dGhvbjsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IGNyZWF0ZV9yZWdleF90YWJs
ZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3MURBODBEMTg4MEQ3MUYwMEQxRjI5
OSAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsg
cGF0aCA9ICJnZW5lcmF0ZS1qcy1idWlsdGlucyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3MjAyOEI0MTc5NzYwMUUwMDk4MDI4QyAvKiBKU0NUZXN0UnVubmVyVXRpbHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDVGVzdFJ1bm5lclV0aWxzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyMDI4QjUxNzk3NjAxRTAwOTgwMjhD
IC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NUZXN0UnVubmVyVXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcy
MDI4QjkxNzk3NjAzRDAwOTgwMjhDIC8qIEpTRnVuY3Rpb25JbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRnVuY3Rpb25JbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zODIyLDkgKzM4MjIsOSBAQAogCQkwMzQ3NjhERkZGMzhBNTA0MTFE
QjlDOEIgLyogUHJvZHVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgKi8sCiAJCQkJOTMyRjVCRTEwODIyQTFDNzAwNzM2OTc1IC8qIGpzYyAqLywKIAkJCQkw
RkY5MjJDRjE0RjQ2QjEzMDA0MUEyNEUgLyogSlNDTExJbnRPZmZzZXRzRXh0cmFjdG9yICovLAot
CQkJCTkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsg
Ki8sCiAJCQkJMEZDRUZBQjYxODA1RDYxNjAwNDcyQ0U0IC8qIGxpYmxsdm1Gb3JKU0MuZHlsaWIg
Ki8sCiAJCQkJMTQxMjExMjAwQTQ4NzkzQzAwNDgwMjU1IC8qIG1pbmlkb20gKi8sCiAJCQkJMTRC
RDU5QkYwQTNFOEY5MDAwQkFGNTlDIC8qIHRlc3RhcGkgKi8sCkBAIC0zODQyLDcgKzM4NDIsNiBA
QAogCQkJCTg2MDRGNEYyMTQzQTZDNDQwMEIyOTVGNSAvKiBDaGFuZ2VMb2cgKi8sCiAJCQkJRjY5
MkE4NTQwMjU1NTk3RDAxRkY2MEY3IC8qIGNyZWF0ZV9oYXNoX3RhYmxlICovLAogCQkJCUE3MThG
ODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhfdGFibGVzICovLAotCQkJCUE3MURB
ODBEMTg4MEQ3MUYwMEQxRjI5OSAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyAqLywKIAkJCQk0NUUx
MkQ4ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLywKIAkJCQlGNjhFQkI4QzAyNTVENEM2
MDFGRjYwRjcgLyogY29uZmlnLmggKi8sCiAJCQkJRjVDMjkwRTYwMjg0Rjk4RTAxODYzNUNBIC8q
IEphdmFTY3JpcHRDb3JlUHJlZml4LmggKi8sCkBAIC0zODU0LDEyICszODUzLDkgQEAKIAkJCQlB
N0Q4MDE5RjE4ODBENjZFMDAyNkMzOUIgLyogYnVpbHRpbnMgKi8sCiAJCQkJOTY5QTA3OEYwRUQx
RDNBRTAwRjFGNjgxIC8qIGJ5dGVjb2RlICovLAogCQkJCTdFMzlEODFEMEVDMzhFRkEwMDNBRjEx
QSAvKiBieXRlY29tcGlsZXIgKi8sCi0JCQkJMUM5MDUxM0UwQkE5RTg4MzAwODFFOUQwIC8qIENv
bmZpZ3VyYXRpb25zICovLAogCQkJCTE0ODBEQjlBMEREQzIyMzEwMDNDRkRGMiAvKiBkZWJ1Z2dl
ciAqLywKLQkJCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICov
LAogCQkJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8sCiAJCQkJMEZGNDI3MkUx
NThFQkNDRTAwNENCOUZGIC8qIGRpc2Fzc2VtYmxlciAqLywKLQkJCQkwODY3RDY5QUZFODQwMjhG
QzAyQUFDMDcgLyogRnJhbWV3b3JrcyAqLywKIAkJCQkwRkVBMDlGQzE3MDUxMzdGMDBCQjcyMkMg
LyogZnRsICovLAogCQkJCTE0MkUzMTJBMTM0RkYwQTYwMEFGQURCNSAvKiBoZWFwICovLAogCQkJ
CUE1QkExNURGMTgyMzQwOTIwMEE4MkU2OSAvKiBpbnNwZWN0b3IgKi8sCkBAIC0zODY4LDE1ICsz
ODY0LDE5IEBACiAJCQkJMEY0NjgwOUMxNEJBN0Y0RDAwQkZFMjcyIC8qIGxsaW50ICovLAogCQkJ
CTBGQ0VGQUFEMTgwNUNBNDQwMDQ3MkNFNCAvKiBsbHZtICovLAogCQkJCTdFMzlEODM3MEVDM0Ez
ODgwMDNBRjExQSAvKiBwYXJzZXIgKi8sCi0JCQkJMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8q
IFByb2R1Y3RzICovLAogCQkJCTk1QUI4MzFBMERBNDJDNjkwMEJDODNGMyAvKiBwcm9maWxlciAq
LywKIAkJCQk5OUU0NUEwQzE4QTAxRTkzMDAyNkQ4OEYgLyogcmVwbGF5ICovLAotCQkJCTkzMkZD
M0MyMDgyNEJCNzAwMDVCM0M3NSAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJN0VGNkUwQkIwRUI3QTFF
QzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8sCiAJCQkJMTQxMjExMDAwQTQ4NzcyNjAwNDgwMjU1IC8q
IHRlc3RzICovLAogCQkJCTg2MDNDRUYwMTRDNzUzRUYwMEFFNTlFMyAvKiB0b29scyAqLywKIAkJ
CQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2FzbSAqLywKIAkJCQk4NkVBQzQ4QzBGOTNF
OEI5MDA4RUM5NDggLyogeWFyciAqLywKKwkJCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyog
RGVyaXZlZCBTb3VyY2VzICovLAorCQkJCTkzMkZDM0MyMDgyNEJCNzAwMDVCM0M3NSAvKiBSZXNv
dXJjZXMgKi8sCisJCQkJOTk1OUU5MjUxQkQxN0YxRTAwMUFBNDEzIC8qIFNjcmlwdHMgKi8sCisJ
CQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8sCisJCQkJMDM0NzY4
REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovLAorCQkJCTFDOTA1MTNFMEJBOUU4ODMw
MDgxRTlEMCAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCSk7CiAJCQluYW1lID0gSmF2YVNjcmlw
dENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTc0Nyw2ICs1NzQ3LDE5IEBA
CiAJCQlwYXRoID0gYnl0ZWNvZGU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQk5OTU5RTkyNTFCRDE3RjFFMDAxQUE0MTMgLyogU2NyaXB0cyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTk1OUU5MjgxQkQxN0ZBMDAwMUFBNDEzIC8q
IGdlbmVyYXRlLWpzLWJ1aWx0aW5zICovLAorCQkJCTk5NTlFOTI3MUJEMTdGQTAwMDFBQTQxMyAv
KiBjc3NtaW4ucHkgKi8sCisJCQkJOTk1OUU5MkYxQkQxODFGNjAwMUFBNDEzIC8qIGdlbmVyYXRl
LWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICovLAorCQkJCTk5NTlFOTMwMUJEMTgxRjYwMDFB
QTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLywK
KwkJCQk5OTU5RTkyOTFCRDE3RkEwMDAxQUE0MTMgLyoganNtaW4ucHkgKi8sCisJCQkJOTk1OUU5
MkExQkQxN0ZBMDAwMUFBNDEzIC8qIHh4ZC5wbCAqLywKKwkJCSk7CisJCQlwYXRoID0gU2NyaXB0
czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk5RTQ1QTBDMThBMDFFOTMw
MDI2RDg4RiAvKiByZXBsYXkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtNTc5NywxMiArNTgxMCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCUM0NzAzQ0MxMTkyODQ0QTQwMDEzRkJFQSAvKiBjb2RlZ2VuICovLAotCQkJ
CUE1ODQwRTI2MTg3Qzk4MDcwMDg0M0IxMCAvKiBjc3NtaW4ucHkgKi8sCi0JCQkJQTUzMjQzOTEx
ODU2OTZFNjAwMkVENjkyIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICov
LAogCQkJCUM0NzAzQ0JGMTkyODQ0OTYwMDEzRkJFQSAvKiBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJv
dG9jb2wtYmluZGluZ3MucHkgKi8sCi0JCQkJQTU4NDBFMjgxODdDQTVCODAwODQzQjEwIC8qIGlu
bGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICovLAotCQkJCUE1MTNF
NUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLywKLQkJCQlBNTEzRTVDNTE4NUY5MkYw
MDA3RTk1QUQgLyogeHhkLnBsICovLAogCQkJKTsKIAkJCXBhdGggPSBzY3JpcHRzOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTYwNzQsNiArNjA4Miw3IEBACiAJCQkJMEYwQjgzQjkx
NEJDRjk1RjAwODg1QjRGIC8qIENhbGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjNCN0UyQjE5QTExQjgwMDBEOUJDNTYgLyogQ2FsbFZhcmlhbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTQyMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhl
bHBlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMUMzRERBMUJCQ0UwOUUwMEU1MjNFNCAvKiBD
ZWxsU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkFBQUU1MEUxRjQyNjUwMEFEODdEOCAv
KiBDbGFzc0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDI2MUFBOTA5NTYwMEQzM0Iz
MyAvKiBDbG9uZWRBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzk3MEVEMUQz
QUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovLApAQCAtNjEyMCw3ICs2MTI5
LDcgQEAKIAkJCQlDNEY0QjZGNDFBMDVDOTQ0MDA1Q0FCNzYgLyogY3BwX2dlbmVyYXRvci5weSBp
biBIZWFkZXJzICovLAogCQkJCUM0RjRCNkYzMUEwNUM5NDQwMDVDQUI3NiAvKiBjcHBfZ2VuZXJh
dG9yX3RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovLAogCQkJCTVERTZFNUIzMEUxNzI4RUMwMDE4
MDQwNyAvKiBjcmVhdGVfaGFzaF90YWJsZSBpbiBIZWFkZXJzICovLAotCQkJCUE1ODQwRTI3MTg3
Qzk4MUUwMDg0M0IxMCAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyQjFC
RDE3RkE0MDAxQUE0MTMgLyogY3NzbWluLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJMkExMTEyNDYx
OTJGQ0U3OTAwNUVFMThEIC8qIEN1c3RvbUdldHRlclNldHRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY0MjZBNEIxNDYwQ0Q2RTAwMTMxRjhGIC8qIERhdGFGb3JtYXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMkI2NkRGMTdCNkI1QUIwMEE3QUUzRiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02MjA1LDEwICs2MjE0LDggQEAKIAkJCQlBNzhBOTc3NTE3OTczOEI4MDA5REY3NDQg
LyogREZHRmFpbGVkRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JGRjNDMDE3OTg2
ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTc4QTk3NzcxNzk3MzhCODAwOURGNzQ0IC8qIERGR0ZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJN0I4MzI5QkYxQkIyMUZFMzAwNjQ5QTZFIC8qIFdBU01GdW5jdGlvbkxMVk1JUkdlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkRDMTYxNTFDNUQ0RjAwQ0Q4OTEwIC8qIERG
R0ZpeHVwUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUQzMzk3MTdGRkM0RTYwMDczQzJC
QyAvKiBERkdGbHVzaGVkQXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzJCRDExMUJCMzRGMTkw
MDkzQTU3RiAvKiBIZWFwSGVscGVyUG9vbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRjgx
N0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJERDgxNTFBQjNEOEJFMDBCQkI4RTggLyogREZHRm9yQWxsS2lsbHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNjlDQzg5MTkzQUM2MEEwMDQ1NzU5RSAvKiBERkdGcm96ZW5WYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC02Mjc3LDcgKzYyODQsNiBAQAogCQkJCTBGQjE3NjYzMTk2QjhGOUUwMDkx
MDUyQSAvKiBERkdQdXJlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGM0ExQkZBMUE5RUNC
N0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODZFQzlERDExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1JlZ2lzdGVyQmFuay5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJREVBN0UyNDUxQkJDNjc3RjAwRDc4NDQwIC8qIEpTVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAv
KiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0E0MjQzMTdBMEJCRkQwMEE4
REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQxMDE3RjE3
OURBRjgwMDAyRUI4QkEgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3Iu
aCBpbiBIZWFkZXJzICovLApAQCAtNjI5Niw3ICs2MzAyLDYgQEAKIAkJCQkwRjYzOTQ3ODE1RENF
MzRCMDA2QTU5N0MgLyogREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1MEFGM0MxOTNFOEIzOTAwNjc0RUU4IC8qIERGR1N0cnVjdHVyZUNsb2JiZXJTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3OTA4NTYxOUEyOTBCMjAwRjYzMTBDIC8qIERGR1N0
cnVjdHVyZVJlZ2lzdHJhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI0RkI3NTFC
Qzg0MzE0MDAyNUNBNUEgLyogRlRMTGF6eVNsb3dQYXRoQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyRkNDRkYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzA5N0EyMTQ2QjI4Q0MwMENGMjQ0MiAvKiBERkdUaHVua3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRDhBMzI4MTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0lu
amVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTYzNzgsNiArNjM4Myw4IEBACiAJCQkJ
MEZEMTIwMzAxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRDEyMDM0MUE4Qzg1QkQwMDBGNTI4MCAvKiBGVExKU0NhbGxWYXJhcmdzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2Mjc3NERBQjFCOEQ0QjE5MDAwNkYwNUEgLyogRlRMSlNUYWlsQ2Fs
bC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCNEZCNzQxQkM4NDMxNDAwMjVDQTVBIC8qIEZUTExh
enlTbG93UGF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCNEZCNzUxQkM4NDMxNDAwMjVDQTVB
IC8qIEZUTExhenlTbG93UGF0aENhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEYyQjk2MTcy
RTA0QTMwMDdEQkRBNSAvKiBGVExMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNFRkFFMDE4
MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEw
QTEwMTcwNTEzREIwMEJCNzIyQyAvKiBGVExMb3dlckRGR1RvTExWTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC02NDIwLDkgKzY0MjcsOSBAQAogCQkJCTJBQUJDREU3MThFRjI5NDIwMDAwMjA5NiAvKiBH
Q0xvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NEU4RUIwMThCRkZCQkIwMDU1NkQyOCAv
KiBHQ1NlZ21lbnRlZEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTRFOEVCMTE4QkZGQkJF
MDA1NTZEMjggLyogR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUE1MzI0Mzk0MTg1Njk3MDkwMDJFRDY5MiAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3It
anNvbi5weSBpbiBIZWFkZXJzICovLAorCQkJCTk5NTlFOTMxMUJEMTgyNzIwMDFBQTQxMyAvKiBn
ZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUM0
NzAzQ0MwMTkyODQ0OTYwMDEzRkJFQSAvKiBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkgaW4gSGVhZGVycyAqLywKLQkJCQkyREZCOEFGRTFCQjMyM0JEMDA5M0QyMzcgLyog
Z2VuZXJhdGUtanMtYnVpbHRpbnMgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyQzFCRDE3RkE0
MDAxQUE0MTMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVB
NzBFQzE5RjVCM0VBMDA5OEY1RUMgLyogZ2VuZXJhdGVfY3BwX2FsdGVybmF0ZV9iYWNrZW5kX2Rp
c3BhdGNoZXJfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFRjlCMTQxQTFENDNGNjAw
NzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVFRjlCMTUxQTFENDNGQTAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9i
YWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKQEAgLTY0
NTksNiArNjQ2Niw3IEBACiAJCQkJMTQyRTMxMzgxMzRGRjBBNjAwQUZBREI1IC8qIEhhbmRsZVN0
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc4Mjk3QjEzNzlFOEE4MDBBN0MyQTMgLyogSGFu
ZGxlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0QkE3QTk4MTNBQURGRjgwMDVCN0MyQyAv
KiBIZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMyQkQxMTFCQjM0RjE5MDA5M0E1N0YgLyog
SGVhcEhlbHBlclBvb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyREE3NzgzMThFMjU5OTkwMDY2
RkNCNiAvKiBIZWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkFEODkzMkIxN0UzODY4
RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUz
MzlFQzkxQkI0QjQ2MDAwNTRGMDA1IC8qIEhlYXBPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC02NDg3LDcgKzY0OTUsNyBAQAogCQkJCUE1MTNFNUNCMTg1Rjk2MjQwMDdFOTVBRCAvKiBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTIxMTg3QjdCODYw
MDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUx
M0U1QzcxODVGOTQ0NjAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBNTg0MEUyOTE4N0NBNUU2MDA4NDNCMTAgLyogaW5saW5lLWFuZC1taW5pZnkt
c3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkzMjFC
RDE4Mjc5MDAxQUE0MTMgLyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlw
dHMucHkgaW4gSGVhZGVycyAqLywKIAkJCQkxNDhBN0JGMDFCODI5NzVBMDAyRDkxNTcgLyogSW5s
aW5lQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1NjE3RjBCNzFDMDBBQkIy
MTcgLyogSW5saW5lQ2FsbEZyYW1lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUU0NUEyNzE4
QTFCMjU5MDAyNkQ4OEYgLyogSW5wdXRDdXJzb3IuaCBpbiBIZWFkZXJzICovLApAQCAtNjYwNSw3
ICs2NjEzLDYgQEAKIAkJCQk4NkUzQzYxNDE2N0JBQkQ3MDA2RDc2MEEgLyogSlNFeHBvcnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3QjRBQ0FGMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1h
Y3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUYxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
RmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJE
MzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NkYwMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Zsb2F0NjRBcnJheS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUYwRTE2RjVDRDAwQjM0NDYwIC8qIEpTRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MjAyOEJBMTc5NzYwM0QwMDk4MDI4QyAvKiBKU0Z1
bmN0aW9uSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjE0LDYgKzY2MjEsNyBAQAogCQkJ
CTBGMkI2NkYzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjQxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQjY2RjUxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyog
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMkI2NkY2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5N0UwN0FBMUI4RkNGQjkw
MDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0NDYwIC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTY2NDYsNyArNjY1NCw3IEBACiAJCQkJMkE0QkI3RjMxOEE0MTE3OTAwOEEwRkNE
IC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzQy
MTdDQkU4RUIwMEMzRTY0MyAvKiBKU01hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0REVGOTYx
ODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1
ODQwRTJCMTg3Q0E3NUIwMDg0M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovLAorCQkJCTk5
NTlFOTJEMUJEMTdGQTQwMDFBQTQxMyAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUUz
RDIzOUM5MUI4MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzE4Q0JDMTFCOEFFRjUxMDBBMjkyOUQgLyogSlNNb2R1bGVOYW1lc3BhY2VP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOURBNEE3MUI3RThCN0MwMDg0RjMzQSAvKiBK
U01vZHVsZVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjYwLDcgKzY2NjgsNiBAQAogCQkJ
CTdDMTg0RTFCMTdCRURCRDMwMDdDQjYzQSAvKiBKU1Byb21pc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDMTg0RTIzMTdCRUUyNDAwMDdDQjYzQSAvKiBKU1Byb21pc2VDb25zdHJ1Y3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0MwMDhDREIxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURl
ZmVycmVkLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI0RkI3NDFCQzg0MzE0MDAyNUNBNUEgLyog
RlRMTGF6eVNsb3dQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUxRjE3QkVFMjJFMDA3
Q0I2M0EgLyogSlNQcm9taXNlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTA1QUJE
NjE5NjFERjI0MDAzNDE3NTAgLyogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC02Njg4LDYgKzY2OTUsNyBAQAogCQkJCTBGMkI2NkZC
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMkI2NkZEMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlQcm90b3R5
cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGRjE3QjZCNUFCMDBBN0FFM0YgLyogSlNU
eXBlZEFycmF5cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREVBN0UyNDUxQkJDNjc3RjAwRDc4NDQw
IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MDdE
MjlFMEU4NzFFNUUwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCNjcwMjE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQjY3MDMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDMyQXJyYXkuaCBpbiBIZWFk
ZXJzICovLApAQCAtNjk2Nyw3ICs2OTc1LDYgQEAKIAkJCQkxNDE0MkU1MTFCNzk2RUNFMDBGNEJG
NEIgLyogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2ludGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjk2M0IzODEzRkM2RkU5MDAwMkQ5QjIgLyogVmFsdWVQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjFDM0REQTFCQkNFMDlFMDBFNTIzRTQgLyogQ2VsbFN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjQyNkE0ODE0NjBDQkIzMDAxMzFGOEYgLyogVmFsdWVSZWNvdmVyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzlFRTBDMDAxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxl
RW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkM3MzUxMUFDOUY5OUYwMEJFMTY4
MiAvKiBWYXJpYWJsZVdyaXRlRmlyZURldGFpbC5oIGluIEhlYWRlcnMgKi8sCkBAIC02OTc5LDYg
KzY5ODYsNyBAQAogCQkJCTdCMDI0NzU1MUI4NjgyREQwMDU0MjQ0MCAvKiBXQVNNQ29uc3RhbnRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QkM1NDdEMzFCNjk1OUExMDA5NTlCNTggLyogV0FTTUZv
cm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0IyRTAxMEUxQjk3QUE2OTAwRUY1RDVDIC8qIFdB
U01GdW5jdGlvbkNvbXBpbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjgzMjlCRjFCQjIxRkUz
MDA2NDlBNkUgLyogV0FTTUZ1bmN0aW9uTExWTUlSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3QjAyNDc1NzFCODY4MkU0MDA1NDI0NDAgLyogV0FTTUZ1bmN0aW9uUGFyc2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QjAyNDc1OTFCODY4RUI3MDA1NDI0NDAgLyogV0FTTUZ1bmN0aW9u
U3ludGF4Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0IzOUY3NkUxQjYyREUzMjAwMzYw
RkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNzAwNiw3ICs3MDE0
LDcgQEAKIAkJCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRl
QmFycmllclN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFE
NjQ5RiAvKiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1ODQwRTJBMTg3Q0E3
NTkwMDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyRTFCRDE3RkE0
MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUxNTM5QjkxMkRDOTk0NTAw
RUY3QUM0IC8qIFlhcnIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg1MTJEQkEzMzcwMEE5
RkU3QiAvKiBZYXJySW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg3MTJE
QkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmggaW4gSGVhZGVycyAqLywKQEAgLTc3NTgsNiArNzc2
Niw3IEBACiAJCQkJMEZEMTIwMkYxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEMTIwMzMxQThDODVCRDAwMEY1MjgwIC8qIEZUTEpTQ2Fs
bFZhcmFyZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjI3NzREQUExQjhENEIxOTAwMDZGMDVB
IC8qIEZUTEpTVGFpbENhbGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZCNEZCNzMxQkM4NDMx
NDAwMjVDQTVBIC8qIEZUTExhenlTbG93UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhG
MkI5NTE3MkUwNEEwMDA3REJEQTUgLyogRlRMTGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkNFRkFERjE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFQTBBMEYxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9MTFZNLmNwcCBp
biBTb3VyY2VzICovLApAQCAtNzc5MSw2ICs3ODAwLDcgQEAKIAkJCQkxNDJFMzEzNTEzNEZGMEE2
MDBBRkFEQjUgLyogSGFuZGxlU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkUzMTM3MTM0
RkYwQTYwMEFGQURCNSAvKiBIYW5kbGVTdGFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEJB
N0E5NzEzQUFERkY4MDA1QjdDMkMgLyogSGVhcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjMy
QkQxMDFCQjM0RjE5MDA5M0E1N0YgLyogSGVhcEhlbHBlclBvb2wuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzI0RDMxRTIxNjFDRDY5NTAwMkFBNERCIC8qIEhlYXBTdGF0aXN0aWNzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUMyRTUyNkJEMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkU3QkE2MEYxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJp
Zmllci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTc5NDgsNiArNzk1OCw3IEBACiAJCQkJMEYyQjY2
RkExN0I2QjVBQjAwQTdBRTNGIC8qIEpTVHlwZWRBcnJheUNvbnN0cnVjdG9ycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjJCNjZGQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNUeXBlZEFycmF5UHJv
dG90eXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZGRTE3QjZCNUFCMDBBN0FFM0Yg
LyogSlNUeXBlZEFycmF5cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlERUE3RTI0NDFCQkM2Nzcy
MDBENzg0NDAgLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NkUzQzYxQTE2N0JBQkVFMDA2RDc2MEEgLyogSlNWYWx1ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTE0QkQ1QTMyMEEzRTkxRjYwMEJBRjU5QyAvKiBKU1ZhbHVlUmVmLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg2RTNDNjFDMTY3QkFCRUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5l
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC04MDIxLDcgKzgwMzIsNiBAQAogCQkJCTBGOTgyMDYwMTZC
RkUzODEwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTU3NDJGNjUwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTVDRDQ1NzYwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJREVBN0UyNDQxQkJDNjc3MjAwRDc4NDQwIC8qIEpTVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTVBQjgzNTYwREE0M0MzMDAw
QkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjcyOUFEMTY2
QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRjcyOUFFMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTgwOTgsNyArODEwOCw2IEBACiAJCQkJMTQ0NjlERUIxMDdFQzdFNzAwNjUw
NDQ2IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUMwRUM2
MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDQ2OURFQzEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTBGQjRGQjczMUJDODQzMTQwMDI1Q0E1QSAvKiBGVExMYXp5U2xv
d1BhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAwNjUwNDQ2IC8q
IFN0cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzM1RjI0RDEyRTY3NjVC
MDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtODEzMCw3ICs4MTM5LDYgQEAKIAkJCQkwRkY0Mjc0MDE1OEVCRThCMDA0Q0I5RkYgLyog
dWRpczg2X2RlY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NDMxNThFQkU5MTAwNENC
OUZGIC8qIHVkaXM4Nl9pbnB1dC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NEQxNThFQkZF
NjAwNENCOUZGIC8qIHVkaXM4Nl9pdGFiX2hvbGRlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYz
MkJEMTAxQkIzNEYxOTAwOTNBNTdGIC8qIEhlYXBIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRjQyNzQ1MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfc3luLWF0dC5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZGNDI3NDYxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9zeW4taW50
ZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQ3MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlz
ODZfc3luLmMgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdpbi5j
bWFrZQppbmRleCA2YTdhZjBkYzY2ZWI3YTcxYmQzZjkxZTczNTQxY2M0MmM4MTAxYjY1Li4wNGZh
NWFkMDYzNGZmMzY4NjJmMDRhZmY0NTI0ZjQyY2VjYzA2NTg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0zMiw4ICszMiw3IEBAIGZpbGUoTUFLRV9ESVJFQ1RP
UlkgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29y
ZSkKIHNldChKYXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NPTU1BTkQgIiR7Q01BS0VfQklOQVJZ
X0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvcG9zdEJ1aWxkLmNtZCIpCiBmaWxl
KFdSSVRFICIke0phdmFTY3JpcHRDb3JlX1BPU1RfQlVJTERfQ09NTUFORH0iICJAeGNvcHkgL3kg
L2QgL2YgXCIke0RFUklWRURfU09VUkNFU19ESVJ9L0phdmFTY3JpcHRDb3JlLyouaFwiIFwiJHtE
RVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZVwiID5u
dWwgMj5udWxcbiIpCiBmaWxlKEFQUEVORCAiJHtKYXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NP
TU1BTkR9IiAiQHhjb3B5IC95IC9kIC9mIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvKi5oXCIgXCIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlXCIgPm51bCAyPm51bFxuIikKLWZpbGUoQVBQRU5EICIk
e0phdmFTY3JpcHRDb3JlX1BPU1RfQlVJTERfQ09NTUFORH0iICJAeGNvcHkgL3kgL2QgL2YgL3Mg
XCIke0RFUklWRURfU09VUkNFU19ESVJ9L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
LyouKlwiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2Ny
aXB0Q29yZVwiID5udWwgMj5udWxcbiIpCi1maWxlKEFQUEVORCAiJHtKYXZhU2NyaXB0Q29yZV9Q
T1NUX0JVSUxEX0NPTU1BTkR9IiAiQHhjb3B5IC95IC9kIC9mIC9zIFwiJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGluc1wiIFwiJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZVwiID5udWwgMj5u
dWxcbiIpCitmaWxlKEFQUEVORCAiJHtKYXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NPTU1BTkR9
IiAiQHhjb3B5IC95IC9kIC9mIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzLyouKlwiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVy
cy9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzXCIgPm51bCAyPm51bFxuIikKIGZvcmVhY2ggKF9kaXJl
Y3RvcnkgJHtKYXZhU2NyaXB0Q29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNUT1JJRVN9KQog
ICAgIGZpbGUoQVBQRU5EICIke0phdmFTY3JpcHRDb3JlX1BPU1RfQlVJTERfQ09NTUFORH0iICJA
eGNvcHkgL3kgL2QgL2YgXCIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vJHtfZGlyZWN0b3J5fS8qLmhc
IiBcIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENv
cmVcIiA+bnVsIDI+bnVsXG4iKQogZW5kZm9yZWFjaCAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvY3NzbWluLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvY3NzbWluLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwNjQwZWIyODRiYWRkNGY1YzgyZTcxYTNmY2Fj
NmQ4YTcxZTMwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9jc3NtaW4ucHkKQEAgLTAsMCArMSw0NCBAQAorIyEvdXNyL2Jpbi9weXRob24KKworIyBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHJlCisKK2RlZiBjc3Nt
aW5pZnkoY3NzKToKKyAgICBydWxlcyA9ICgKKyAgICAgICAgKHIiXC9cKi4qP1wqXC8iLCAiIiks
ICAgICAgICAgICMgZGVsZXRlIGNvbW1lbnRzCisgICAgICAgIChyIlxuIiwgIiIpLCAgICAgICAg
ICAgICAgICAgICAjIGRlbGV0ZSBuZXcgbGluZXMKKyAgICAgICAgKHIiXHMrIiwgIiAiKSwgICAg
ICAgICAgICAgICAgICMgY2hhbmdlIG11bHRpcGxlIHNwYWNlcyB0byBvbmUgc3BhY2UKKyAgICAg
ICAgKHIiXHM/KFs7Ont9LCs+XSlccz8iLCByIlwxIiksICMgZGVsZXRlIHNwYWNlIHdoZXJlIGl0
IGlzIG5vdCBuZWVkZWQKKyAgICAgICAgKHIiO30iLCAifSIpICAgICAgICAgICAgICAgICAgICMg
Y2hhbmdlICc7fScgdG8gJ30nIGJlY2F1c2UgdGhlIHNlbWljb2xvbiBpcyBub3QgbmVlZGVkCisg
ICAgKQorCisgICAgY3NzID0gY3NzLnJlcGxhY2UoIlxyXG4iLCAiXG4iKQorICAgIGZvciBydWxl
IGluIHJ1bGVzOgorICAgICAgICBjc3MgPSByZS5jb21waWxlKHJ1bGVbMF0sIHJlLk1VTFRJTElO
RSB8IHJlLlVOSUNPREUgfCByZS5ET1RBTEwpLnN1YihydWxlWzFdLCBjc3MpCisgICAgcmV0dXJu
IGNzcworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIGltcG9ydCBzeXMKKyAgICBz
eXMuc3Rkb3V0LndyaXRlKGNzc21pbmlmeShzeXMuc3RkaW4ucmVhZCgpKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rv
ci1qc29uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTM2NjAzMThkZGNlM2JhNzhjYmIwNjk2
YTIxNzU4MTk2MGY5MTAxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5CkBAIC0wLDAgKzEs
NjkgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK2ltcG9ydCBnbG9iCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc3lz
CisKK2lmIGxlbihzeXMuYXJndikgPCAyOgorICAgIHByaW50KCJ1c2FnZTogJXMgW2pzb24gZmls
ZXMgb3IgZGlyZWN0b3J5IG9mIGpzb24gZmlsZXMgLi4uXSIgJSBvcy5wYXRoLmJhc2VuYW1lKHN5
cy5hcmd2WzBdKSkKKyAgICBzeXMuZXhpdCgxKQorCitmaWxlcyA9IFtdCitmb3IgYXJnIGluIHN5
cy5hcmd2WzE6XToKKyAgICBpZiBub3Qgb3MuYWNjZXNzKGFyZywgb3MuRl9PSyk6CisgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbigiRmlsZSBcIiVzXCIgbm90IGZvdW5kIiAlIGFyZykKKyAgICBlbGlm
IG9zLnBhdGguaXNkaXIoYXJnKToKKyAgICAgICAgZmlsZXMuZXh0ZW5kKGdsb2IuZ2xvYihvcy5w
YXRoLmpvaW4oYXJnLCAiKi5qc29uIikpKQorICAgIGVsc2U6CisgICAgICAgIGZpbGVzLmFwcGVu
ZChhcmcpCitmaWxlcy5zb3J0KCkKKworIyBUbyBrZWVwIGFzIGNsb3NlIHRvIHRoZSBvcmlnaW5h
bCBKU09OIGZvcm1hdHRpbmcgYXMgcG9zc2libGUsIGp1c3QKKyMgZHVtcCBlYWNoIEpTT04gaW5w
dXQgZmlsZSB1bm1vZGlmaWVkIGludG8gYW4gYXJyYXkgb2YgImRvbWFpbnMiLgorIyBWYWxpZGF0
ZSBlYWNoIGZpbGUgaXMgdmFsaWQgSlNPTiBhbmQgdGhhdCB0aGVyZSBpcyBhICJkb21haW4iIGtl
eS4KKworZmlyc3QgPSBUcnVlCitwcmludCgie1wiZG9tYWluc1wiOlsiKQorZm9yIGZpbGUgaW4g
ZmlsZXM6CisgICAgaWYgZmlyc3Q6CisgICAgICAgIGZpcnN0ID0gRmFsc2UKKyAgICBlbHNlOgor
ICAgICAgICBwcmludCgiLCIpCisKKyAgICBzdHJpbmcgPSBvcGVuKGZpbGUpLnJlYWQoKQorCisg
ICAgdHJ5OgorICAgICAgICBkaWN0aW9uYXJ5ID0ganNvbi5sb2FkcyhzdHJpbmcpCisgICAgICAg
IGlmIG5vdCAiZG9tYWluIiBpbiBkaWN0aW9uYXJ5OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCJGaWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWlucyBhIFwiZG9tYWluXCIga2V5LiIgJSBm
aWxlKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJG
aWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWluIHZhbGlkIEpTT046XG4iICUgZmlsZSkKKyAgICAg
ICAgcmFpc2UKKworICAgIHByaW50KHN0cmluZy5yc3RyaXAoKSkKK3ByaW50KCJdfSIpCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0
aW5zIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGZmNDE4NzNkYTJiNjVhNzcxMTRjZjVkNDFlODdhNGMwZDMwNjM3YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpz
LWJ1aWx0aW5zCkBAIC0wLDAgKzEsMzQzIEBACisjIS91c3IvYmluL3B5dGhvbgorIyBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgZmlsZWNtcAoraW1wb3J0IGZubWF0Y2gKK2lt
cG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3lzCitpbXBvcnQgZGF0
ZXRpbWUKK2ltcG9ydCBqc29uCisKK3BhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkK
K3BhcnNlci5hZGRfYXJndW1lbnQoJ2lucHV0X2ZpbGUnLCBuYXJncz0nKicsIGhlbHA9J0lucHV0
IEpTIGZpbGVzIHdoaWNoIGJ1aWx0aW5zIGdlbmVyYXRlZCBmcm9tJykKK3BhcnNlci5hZGRfYXJn
dW1lbnQoJy0taW5wdXQtZGlyZWN0b3J5JywgaGVscD0nQWxsIEpTIGZpbGVzIHdpbGwgYmUgdXNl
ZCBhcyBpbnB1dCBmcm9tIHRoaXMgZGlyZWN0b3J5LicpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCct
LW91dHB1dCcsIGhlbHA9J3BhdGggdG8gb3V0cHV0IGNwcCBvciBoIGZpbGUnKQorcGFyc2VyLmFk
ZF9hcmd1bWVudCgnLS1wcmVmaXgnLCBkZWZhdWx0PSdKU0MnLCBoZWxwPSdwcmVmaXggdXNlZCBm
b3IgcHVibGljIG1hY3JvcycpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW5hbWVzcGFjZScsIGRl
ZmF1bHQ9J0pTQycsIGhlbHA9J0MrKyBuYW1lc3BhY2UnKQorYXJncyA9IHBhcnNlci5wYXJzZV9h
cmdzKCkKKworY29weXJpZ2h0VGV4dCA9ICIiIiAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovXG4KKyIiIgorCitnZW5lcmF0b3JTdHJpbmcgPSAiLyogR2VuZXJhdGVkIGJ5
ICVzIGRvIG5vdCBoYW5kIGVkaXQuICovXG4iICUgb3MucGF0aC5iYXNlbmFtZShfX2ZpbGVfXykK
KworZnVuY3Rpb25IZWFkUmVnRXhwID0gcmUuY29tcGlsZShyIig/OmZ1bmN0aW9ufGNvbnN0cnVj
dG9yKVxzK1x3K1xzKlwoLio/XCkiLCByZS5NVUxUSUxJTkUgfCByZS5TKQorZnVuY3Rpb25OYW1l
UmVnRXhwID0gcmUuY29tcGlsZShyIig/OmZ1bmN0aW9ufGNvbnN0cnVjdG9yKVxzKyhcdyspXHMq
XCgiLCByZS5NVUxUSUxJTkUgfCByZS5TKQorZnVuY3Rpb25Jc0NvbnN0cnVjdG9yUmVnRXhwID0g
cmUuY29tcGlsZShyIl5jb25zdHJ1Y3RvciIsIHJlLk1VTFRJTElORSB8IHJlLlMpCitmdW5jdGlv
blBhcmFtZXRlckZpbmRlciA9IHJlLmNvbXBpbGUociJeKD86ZnVuY3Rpb258Y29uc3RydWN0b3Ip
XHMrKD86XHcrKVxzKlwoKCg/OlxzKlx3Kyk/XHMqKD86XHMqLFxzKlx3KykqKT9ccypcKSIsIHJl
Lk1VTFRJTElORSB8IHJlLlMpCisKK211bHRpbGluZUNvbW1lbnRSZWdFeHAgPSByZS5jb21waWxl
KHIiXC9cKi4qP1wqXC8iLCByZS5NVUxUSUxJTkUgfCByZS5TKQorc2luZ2xlTGluZUNvbW1lbnRS
ZWdFeHAgPSByZS5jb21waWxlKHIiXC9cLy4qP1xuIiwgcmUuTVVMVElMSU5FIHwgcmUuUykKKwor
ZGVmIGdldENvcHlyaWdodChzb3VyY2UpOgorICAgIGNvcHlyaWdodEJsb2NrID0gbXVsdGlsaW5l
Q29tbWVudFJlZ0V4cC5maW5kYWxsKHNvdXJjZSlbMF0KKyAgICBjb3B5cmlnaHRCbG9jayA9IGNv
cHlyaWdodEJsb2NrWzpjb3B5cmlnaHRCbG9jay5pbmRleCgiUmVkaXN0cmlidXRpb24iKV0KKyAg
ICBjb3B5UmlnaHRMaW5lcyA9IFtdCisKKyAgICBmb3IgbGluZSBpbiBjb3B5cmlnaHRCbG9jay5z
cGxpdCgiXG4iKToKKyAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiLyoiLCAiIikKKyAgICAg
ICAgbGluZSA9IGxpbmUucmVwbGFjZSgiKi8iLCAiIikKKyAgICAgICAgbGluZSA9IGxpbmUucmVw
bGFjZSgiKiIsICIiKQorICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCJDb3B5cmlnaHQiLCAi
IikKKyAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiY29weXJpZ2h0IiwgIiIpCisgICAgICAg
IGxpbmUgPSBsaW5lLnJlcGxhY2UoIihDKSIsICIiKQorICAgICAgICBsaW5lID0gbGluZS5yZXBs
YWNlKCIoYykiLCAiIikKKyAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQorICAgICAgICBpZiBs
ZW4obGluZSkgPT0gMDoKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgY29weVJpZ2h0
TGluZXMuYXBwZW5kKGxpbmUpCisgICAgCisgICAgcmV0dXJuIGxpc3Qoc2V0KGNvcHlSaWdodExp
bmVzKSkKKworY2xhc3MgRnVuY3Rpb24ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bmFtZSwgc291cmNlLCBpc0NvbnN0cnVjdG9yLCBwYXJhbWV0ZXJzKToKKyAgICAgICAgc2VsZi5u
YW1lID0gbmFtZQorICAgICAgICBzZWxmLnNvdXJjZSA9IHNvdXJjZQorICAgICAgICBzZWxmLmlz
Q29uc3RydWN0b3IgPSBpc0NvbnN0cnVjdG9yCisgICAgICAgIHNlbGYucGFyYW1ldGVycyA9IHBh
cmFtZXRlcnMKKworICAgIGRlZiBtYW5nbGVOYW1lKHNlbGYsIG9iamVjdCk6CisgICAgICAgIHFO
YW1lID0gb2JqZWN0ICsgIi4iICsgc2VsZi5uYW1lCisgICAgICAgIG1hbmdsZWROYW1lID0gIiIK
KyAgICAgICAgaSA9IDAKKyAgICAgICAgd2hpbGUgaSA8IGxlbihxTmFtZSk6CisgICAgICAgICAg
ICBpZiBxTmFtZVtpXSA9PSAnLic6CisgICAgICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5n
bGVkTmFtZSArIHFOYW1lW2kgKyAxXS51cHBlcigpCisgICAgICAgICAgICAgICAgaSA9IGkgKyAx
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xl
ZE5hbWUgKyBxTmFtZVtpXQorICAgICAgICAgICAgaSA9IGkgKyAxCisgICAgICAgIGlmIHNlbGYu
aXNDb25zdHJ1Y3RvcjoKKyAgICAgICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xlZE5hbWUgKyAi
Q29uc3RydWN0b3IiCisgICAgICAgIHJldHVybiBtYW5nbGVkTmFtZQorCitkZWYgZ2V0RnVuY3Rp
b25zKHNvdXJjZSk6CisKKyAgICBzb3VyY2UgPSBtdWx0aWxpbmVDb21tZW50UmVnRXhwLnN1Yigi
LyoqLyIsIHNpbmdsZUxpbmVDb21tZW50UmVnRXhwLnN1YigiLy9cbiIsIHNvdXJjZSkpCisKKyAg
ICBtYXRjaGVzID0gWyBmIGZvciBmIGluIGZ1bmN0aW9uSGVhZFJlZ0V4cC5maW5kaXRlcihzb3Vy
Y2UpXQorICAgIGZ1bmN0aW9uQm91bmRzID0gW10KKyAgICBzdGFydCA9IDAKKyAgICBlbmQgPSAw
CisgICAgZm9yIG1hdGNoIGluIG1hdGNoZXM6CisgICAgICAgIHN0YXJ0ID0gbWF0Y2guc3RhcnQo
KQorICAgICAgICBpZiBzdGFydCA8IGVuZDoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
IGVuZCA9IG1hdGNoLmVuZCgpCisgICAgICAgIHdoaWxlIHNvdXJjZVtlbmRdICE9ICd7JzoKKyAg
ICAgICAgICAgIGVuZCA9IGVuZCArIDEKKyAgICAgICAgZGVwdGggPSAxCisgICAgICAgIGVuZCA9
IGVuZCArIDEKKyAgICAgICAgd2hpbGUgZGVwdGggPiAwOgorICAgICAgICAgICAgaWYgc291cmNl
W2VuZF0gPT0gJ3snOgorICAgICAgICAgICAgICAgIGRlcHRoID0gZGVwdGggKyAxCisgICAgICAg
ICAgICBlbGlmIHNvdXJjZVtlbmRdID09ICd9JzoKKyAgICAgICAgICAgICAgICBkZXB0aCA9IGRl
cHRoIC0gMQorICAgICAgICAgICAgZW5kID0gZW5kICsgMQorICAgICAgICBmdW5jdGlvbkJvdW5k
cy5hcHBlbmQoKHN0YXJ0LCBlbmQpKQorCisgICAgZnVuY3Rpb25zID0gW3NvdXJjZVtzdGFydDpl
bmRdLnN0cmlwKCkgZm9yIChzdGFydCwgZW5kKSBpbiBmdW5jdGlvbkJvdW5kc10KKyAgICByZXN1
bHQgPSBbXQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAgIGZ1bmN0aW9u
ID0gbXVsdGlsaW5lQ29tbWVudFJlZ0V4cC5zdWIoIiIsIGZ1bmN0aW9uKQorICAgICAgICBmdW5j
dGlvbk5hbWUgPSBmdW5jdGlvbk5hbWVSZWdFeHAuZmluZGFsbChmdW5jdGlvbilbMF0KKyAgICAg
ICAgZnVuY3Rpb25Jc0NvbnN0cnVjdG9yID0gZnVuY3Rpb25Jc0NvbnN0cnVjdG9yUmVnRXhwLm1h
dGNoKGZ1bmN0aW9uKSAhPSBOb25lCisgICAgICAgIGZ1bmN0aW9uUGFyYW1ldGVycyA9IGZ1bmN0
aW9uUGFyYW1ldGVyRmluZGVyLmZpbmRhbGwoZnVuY3Rpb24pWzBdLnNwbGl0KCcsJykKKyAgICAg
ICAgaWYgbGVuKGZ1bmN0aW9uUGFyYW1ldGVyc1swXSkgPT0gMDoKKyAgICAgICAgICAgIGZ1bmN0
aW9uUGFyYW1ldGVycyA9IFtdCisKKyAgICAgICAgcmVzdWx0LmFwcGVuZChGdW5jdGlvbihmdW5j
dGlvbk5hbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbklzQ29uc3RydWN0b3IsIGZ1bmN0aW9uUGFyYW1l
dGVycykpCisgICAgcmV0dXJuIHJlc3VsdAorCitkZWYgd3JpdGVJbmNsdWRlRGlyZWN0aXZlcyh3
cml0ZXIsIGhlYWRlck5hbWVzKToKKyAgICBmb3IgaGVhZGVyTmFtZSBpbiBoZWFkZXJOYW1lczoK
KyAgICAgICAgd3JpdGVyLndyaXRlKCIjaW5jbHVkZSAiICsgaGVhZGVyTmFtZSArICJcbiIpCisK
K2RlZiBnZW5lcmF0ZUNvZGUoc291cmNlKToKKyAgICBpbnB1dEZpbGUgPSBvcGVuKHNvdXJjZSwg
InIiKQorICAgIGJhc2VOYW1lID0gb3MucGF0aC5iYXNlbmFtZShzb3VyY2UpLnJlcGxhY2UoIi5q
cyIsICIiKQorICAgIAorICAgIHNvdXJjZSA9ICIiCisgICAgZm9yIGxpbmUgaW4gaW5wdXRGaWxl
OgorICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyBsaW5lCisgICAgCisgICAgaWYgc3lzLnBsYXRm
b3JtID09ICJjeWd3aW4iOgorICAgICAgICBzb3VyY2UgPSBzb3VyY2UucmVwbGFjZSgiXHJcbiIs
ICJcbiIpCisgICAgcmV0dXJuIChiYXNlTmFtZSwgZ2V0RnVuY3Rpb25zKHNvdXJjZSksIGdldENv
cHlyaWdodChzb3VyY2UpKQorCitidWlsdGlucyA9IFtdCitjb3B5cmlnaHRzID0gW10KKyhvdXRw
dXRfYmFzZSwgXykgPSBvcy5wYXRoLnNwbGl0ZXh0KGFyZ3Mub3V0cHV0KQorCitpZiBhcmdzLmlu
cHV0X2RpcmVjdG9yeToKKyAgICBmb3IgZmlsZSBpbiBvcy5saXN0ZGlyKGFyZ3MuaW5wdXRfZGly
ZWN0b3J5KToKKyAgICAgICAgYXJncy5pbnB1dF9maWxlLmFwcGVuZChvcy5wYXRoLmpvaW4oYXJn
cy5pbnB1dF9kaXJlY3RvcnksIGZpbGUpKQorCitmb3IgZmlsZSBpbiBhcmdzLmlucHV0X2ZpbGU6
CisgICAgaWYgZm5tYXRjaC5mbm1hdGNoKGZpbGUsICcqLmpzJyk6CisgICAgICAgIChiYXNlTmFt
ZSwgZnVuY3Rpb25zLCBvYmplY3RDb3B5cmlnaHRzKSA9IGdlbmVyYXRlQ29kZShmaWxlKQorICAg
ICAgICBjb3B5cmlnaHRzLmV4dGVuZChvYmplY3RDb3B5cmlnaHRzKQorICAgICAgICBidWlsdGlu
cy5hcHBlbmQoKGJhc2VOYW1lLCBmdW5jdGlvbnMpKQorbmFtZXNwYWNlID0gYXJncy5uYW1lc3Bh
Y2UKK21hY3JvUHJlZml4ID0gYXJncy5wcmVmaXgKK3Njb3BlTmFtZSA9IG9zLnBhdGguc3BsaXRl
eHQob3MucGF0aC5iYXNlbmFtZShhcmdzLm91dHB1dCkpWzBdCitpbmNsdWRlR3VhcmQgPSBzY29w
ZU5hbWUgKyAiX0giCitoZWFkZXJOYW1lID0gc2NvcGVOYW1lICsgIi5oIgorCitoZWFkZXJJbmNs
dWRlcyA9IFsiXCJCdWlsdGluVXRpbHMuaFwiIl0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2Ug
WyI8YnVpbHRpbnMvQnVpbHRpblV0aWxzLmg+Il0KK2NvbnRlbnRJbmNsdWRlcyA9IFsiXCJCdWls
dGluRXhlY3V0YWJsZXMuaFwiIiwgIlwiRXhlY3V0YWJsZS5oXCIiLCAiXCJKU0NlbGxJbmxpbmVz
LmhcIiIsICJcIlZNLmhcIiJdIGlmIG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNlIFsiPHJ1bnRpbWUv
RXhlY3V0YWJsZS5oPiIsICI8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+IiwgIjxydW50aW1l
L0pTQ0pTVmFsdWVJbmxpbmVzLmg+IiwgIjxydW50aW1lL0pTQ2VsbElubGluZXMuaD4iLCAiPHJ1
bnRpbWUvVk0uaD4iLCAiXCJXZWJDb3JlSlNDbGllbnREYXRhLmhcIiJdCisKK2NvcHlyaWdodHMg
PSBsaXN0KHNldChjb3B5cmlnaHRzKSkKKworY29weXJpZ2h0Qm9keSA9ICIiCitmb3IgY29weXJp
Z2h0IGluIGNvcHlyaWdodHM6CisgICAgY29weXJpZ2h0Qm9keSA9IGNvcHlyaWdodEJvZHkgKyIg
KiBDb3B5cmlnaHQgKEMpICIgKyBjb3B5cmlnaHQgKyAiXG4iCisKK2J1aWx0aW5zSGVhZGVyID0g
b3BlbihvdXRwdXRfYmFzZSArICIuaC50bXAiLCAidyIpCitidWlsdGluc0ltcGxlbWVudGF0aW9u
ID0gb3BlbihvdXRwdXRfYmFzZSArICIuY3BwLnRtcCIsICJ3IikKK2NvcHlyaWdodFRleHQgPSAi
LypcbiIgKyBjb3B5cmlnaHRCb2R5ICsgY29weXJpZ2h0VGV4dAorYnVpbHRpbnNIZWFkZXIud3Jp
dGUoIiIiJXMKKyVzCisKKyNpZm5kZWYgJXMKKyNkZWZpbmUgJXMKKworIiIiICUgKGdlbmVyYXRv
clN0cmluZywgY29weXJpZ2h0VGV4dCwgaW5jbHVkZUd1YXJkLCBpbmNsdWRlR3VhcmQpKQorCit3
cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSGVhZGVyLCBoZWFkZXJJbmNsdWRlcykKKwor
YnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCituYW1lc3BhY2UgSlNDIHsKKyAgICBjbGFzcyBGdW5j
dGlvbkV4ZWN1dGFibGU7Cit9CisKK25hbWVzcGFjZSAlcyB7CisKKyIiIiAlIG5hbWVzcGFjZSkK
KworY29kZVJlZmVyZW5jZXMgPSBbXQorCitmb3IgKG9iamVjdE5hbWUsIGZ1bmN0aW9ucykgaW4g
YnVpbHRpbnM6CisgICAgcHJpbnQoIkdlbmVyYXRpbmcgYmluZGluZ3MgZm9yIHRoZSAlcyBidWls
dGluLiIgJSBvYmplY3ROYW1lKQorICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIvKiAlcyBmdW5j
dGlvbnMgKi9cbiIgJSBvYmplY3ROYW1lKQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6
CisgICAgICAgIG5hbWUgPSBmdW5jdGlvbi5uYW1lCisgICAgICAgIG1hbmdsZWROYW1lID0gZnVu
Y3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKQorICAgICAgICBtYW5nbGVkTmFtZSA9IG1hbmds
ZWROYW1lWzBdLmxvd2VyKCkgKyBtYW5nbGVkTmFtZVsxOl0gKyAiQ29kZSIKKyAgICAgICAgY29k
ZVJlZmVyZW5jZXMuYXBwZW5kKChtYW5nbGVkTmFtZSwgZnVuY3Rpb24pKQorICAgICAgICBidWls
dGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IGNoYXIqIHNfJXM7XG4iICUgbWFuZ2xlZE5h
bWUpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgaW50IHNfJXNM
ZW5ndGg7XG4iICUgbWFuZ2xlZE5hbWUpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJl
eHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5O1xu
IiAlIG1hbmdsZWROYW1lKQorICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIpCisgICAgYnVp
bHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF8lc19CVUlMVElOKG1hY3JvKSBc
XFxuIiAlIChtYWNyb1ByZWZpeCwgb2JqZWN0TmFtZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBlcigp
KSkKKyAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgorICAgICAgICBtYW5nbGVkTmFtZSA9
IGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkKKyAgICAgICAgYnVpbHRpbnNIZWFkZXIu
d3JpdGUoIiAgICBtYWNybyglcywgJXMsICVkKSBcXFxuIiAlIChmdW5jdGlvbi5uYW1lLCBtYW5n
bGVkTmFtZSwgbGVuKGZ1bmN0aW9uLnBhcmFtZXRlcnMpKSkKKyAgICBidWlsdGluc0hlYWRlci53
cml0ZSgiXG4iKQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAgIGJ1aWx0
aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0JVSUxUSU5fJXMgMVxuIiAlIChtYWNyb1ByZWZp
eCwgZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKS51cHBlcigpKSkKKyAgICBidWlsdGlu
c0hlYWRlci53cml0ZSgiXG5cbiIpCituYW1lcyA9IFtdCitidWlsdGluc0hlYWRlci53cml0ZSgi
I2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU4obWFjcm8pXFxcbiIgJSBtYWNyb1ByZWZpeCkKK2Zv
ciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgorICAgIGJ1aWx0
aW5zSGVhZGVyLndyaXRlKCIgICAgbWFjcm8oJXMsICVzLCBzXyVzTGVuZ3RoKSBcXFxuIiAlIChj
b2RlUmVmZXJlbmNlLCBmdW5jdGlvbi5uYW1lLCBjb2RlUmVmZXJlbmNlKSkKKyAgICBuYW1lcy5h
cHBlbmQoZnVuY3Rpb24ubmFtZSkKKworYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuXG4iKQorYnVp
bHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUobWFjcm8pIFxcXG4iICUgbWFjcm9QcmVmaXgpCitmb3IgbmFtZSBpbiBzb3J0ZWQoc2V0KG5h
bWVzKSk6CisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcykgXFxcbiIgJSBu
YW1lKQorYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCisKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElO
X0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAorICAg
IEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsK
KworJXNfRk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCisjdW5kZWYg
REVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgorCisjZGVmaW5lICVzX0JVSUxUSU5fRVhJU1RTKG5h
bWUpIGRlZmluZWQgJXNfQlVJTFRJTl8gIyMgbmFtZQorCit9CisKKyNlbmRpZiAvLyAlcworCisi
IiIgJSAobWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBtYWNyb1ByZWZpeCwgaW5jbHVkZUd1YXJk
KSkKKworYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIlcworJXMKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiJXMiCisKKyIiIiAgJSAoZ2VuZXJhdG9yU3RyaW5nLCBj
b3B5cmlnaHRUZXh0LCBoZWFkZXJOYW1lKSkKKword3JpdGVJbmNsdWRlRGlyZWN0aXZlcyhidWls
dGluc0ltcGxlbWVudGF0aW9uLCBjb250ZW50SW5jbHVkZXMpCisKK2J1aWx0aW5zSW1wbGVtZW50
YXRpb24ud3JpdGUoIiIiCituYW1lc3BhY2UgJXMgeworCisiIiIgICUgKG5hbWVzcGFjZSkpCisK
KworCitmb3IgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKKyAg
ICBzb3VyY2UgPSBmdW5jdGlvbi5zb3VyY2UKKyAgICBzb3VyY2UgPSAiKGZ1bmN0aW9uICIgKyBz
b3VyY2Vbc291cmNlLmluZGV4KCIoIik6XSArICIpIgorICAgIGxpbmVzID0ganNvbi5kdW1wcyhz
b3VyY2UpWzE6LTFdLnNwbGl0KCJcXG4iKQorICAgIHNvdXJjZUxlbmd0aCA9IGxlbihzb3VyY2Up
CisgICAgc291cmNlID0gIiIKKyAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgc291cmNl
ID0gc291cmNlICsgKCIgICAgXCIlc1xcblwiIFxcXG4iICUgbGluZSkKKyAgICBidWlsdGluc0lt
cGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBjaGFyKiBzXyVzID1cbiVzO1xuXG4iICUgKGNvZGVS
ZWZlcmVuY2UsIHNvdXJjZSkpCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29u
c3QgaW50IHNfJXNMZW5ndGggPSAlZDtcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBzb3VyY2VMZW5n
dGggKyAxKSkgIyArIDEgZm9yIFxuCisgICAgY29uc3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0
cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdCIKKyAgICBpZiBmdW5jdGlvbi5pc0NvbnN0cnVj
dG9yOgorICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2FuQ29uc3RydWN0IgorICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xuXG4iICUgKGNv
ZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KKworYnVpbHRpbnNJ
bXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKKyNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9S
KGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCitKU0M6OkZ1bmN0aW9u
RXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXFwKKyIiIik7CisK
K2lmIChuYW1lc3BhY2UgPT0gIkpTQyIpOgorICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3Jp
dGUoIiIie1xcCisgICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMj
RXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUj
I1NvdXJjZSgpKTsgXFwKKyIiIikKK2Vsc2U6CisgICAgYnVpbHRpbk5hbWUgPSBzY29wZU5hbWVb
MF0ubG93ZXIoKSArIHNjb3BlTmFtZVsxOl0KKyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndy
aXRlKCIiIntcXAorICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXFwKKyAgICByZXR1cm4gY2xpZW50RGF0
YS0+YnVpbHRpbkZ1bmN0aW9ucygpLiVzKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2
bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLiVzKCkuY29kZU5hbWUjI1NvdXJjZSgp
KTsgXFwKKyIiIiUgKGJ1aWx0aW5OYW1lLCBidWlsdGluTmFtZSkpCisKK2J1aWx0aW5zSW1wbGVt
ZW50YXRpb24ud3JpdGUoIiIifQorJXNfRk9SRUFDSF9CVUlMVElOKERFRklORV9CVUlMVElOX0dF
TkVSQVRPUikKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKK30KKworIiIiJSAobWFj
cm9QcmVmaXgpKQorCitidWlsdGluc0hlYWRlci5jbG9zZSgpCitidWlsdGluc0ltcGxlbWVudGF0
aW9uLmNsb3NlKCkKKworaWYgKG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuaCIp
KSBvciAobm90IGZpbGVjbXAuY21wKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsIG91dHB1dF9iYXNl
ICsgIi5oIiwgc2hhbGxvdz1GYWxzZSkpOgorICAgIGlmIChvcy5wYXRoLmV4aXN0cyhvdXRwdXRf
YmFzZSArICIuaCIpKToKKyAgICAgICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5oIikKKyAg
ICBvcy5yZW5hbWUob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiKQor
ZWxzZToKKyAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgudG1wIikKKworaWYgKG5vdCBv
cy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuY3BwIikpIG9yIChub3QgZmlsZWNtcC5jbXAo
b3V0cHV0X2Jhc2UgKyAiLmNwcC50bXAiLCBvdXRwdXRfYmFzZSArICIuY3BwIiwgc2hhbGxvdz1G
YWxzZSkpOgorICAgIGlmIChvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuY3BwIikpOgor
ICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmNwcCIpCisgICAgb3MucmVuYW1lKG91
dHB1dF9iYXNlICsgIi5jcHAudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmNwcCIpCitlbHNlOgorICAg
IG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuY3BwLnRtcCIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQt
c2NyaXB0cy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2lubGluZS1hbmQtbWlu
aWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MjAwYzg0ZWU5ZTY2
ZDMxYjZjYWVlY2I0NDY4MDcxMmU3MzdjNjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2Ny
aXB0cy5weQpAQCAtMCwwICsxLDgxIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBzY3JpcHQgaW5saW5lcyBh
bmQgbWluaWZpZXMgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIHNjcmlwdHMuCisjICAtIDxsaW5r
IGhyZWY9Ii4uLiIgcmVsPSJzdHlsZXNoZWV0Ij4gPT4gPHN0eWxlPi4uLjwvc3R5bGU+CisjICAt
IDxzY3JpcHQgc3JjPSIuLi4iPiAgICAgICAgICAgICAgICAgPT4gPHNjcmlwdD4uLi48L3Njcmlw
dD4KKworaW1wb3J0IGNzc21pbgoraW1wb3J0IGpzbWluCitpbXBvcnQgb3MucGF0aAoraW1wb3J0
IHJlCitpbXBvcnQgc3lzCisKKworZGVmIG1haW4oYXJndik6CisKKyAgICBpZiBsZW4oYXJndikg
PCAyOgorICAgICAgICBwcmludCgndXNhZ2U6ICVzIGlucHV0RmlsZSBvdXRwdXRGaWxlJyAlIGFy
Z3ZbMF0pCisgICAgICAgIHJldHVybiAxCisKKyAgICBpbnB1dEZpbGVOYW1lID0gYXJndlsxXQor
ICAgIG91dHB1dEZpbGVOYW1lID0gYXJndlsyXQorICAgIGltcG9ydHNEaXIgPSBvcy5wYXRoLmRp
cm5hbWUoaW5wdXRGaWxlTmFtZSkKKworICAgIGlucHV0RmlsZSA9IG9wZW4oaW5wdXRGaWxlTmFt
ZSwgJ3InKQorICAgIGlucHV0Q29udGVudCA9IGlucHV0RmlsZS5yZWFkKCkKKyAgICBpbnB1dEZp
bGUuY2xvc2UoKQorCisgICAgZGVmIGlubGluZShtYXRjaCwgbWluaWZpZXIsIHByZWZpeCwgcG9z
dGZpeCk6CisgICAgICAgIGltcG9ydEZpbGVOYW1lID0gbWF0Y2guZ3JvdXAoMSkKKyAgICAgICAg
ZnVsbFBhdGggPSBvcy5wYXRoLmpvaW4oaW1wb3J0c0RpciwgaW1wb3J0RmlsZU5hbWUpCisgICAg
ICAgIGlmIG5vdCBvcy5hY2Nlc3MoZnVsbFBhdGgsIG9zLkZfT0spOgorICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdGaWxlICVzIHJlZmVyZW5jZWQgaW4gJXMgbm90IGZvdW5kJyAlIChpbXBv
cnRGaWxlTmFtZSwgaW5wdXRGaWxlTmFtZSkpCisgICAgICAgIGltcG9ydEZpbGUgPSBvcGVuKGZ1
bGxQYXRoLCAncicpCisgICAgICAgIGltcG9ydENvbnRlbnQgPSBtaW5pZmllcihpbXBvcnRGaWxl
LnJlYWQoKSkKKyAgICAgICAgaW1wb3J0RmlsZS5jbG9zZSgpCisgICAgICAgIHJldHVybiAnJXMl
cyVzJyAlIChwcmVmaXgsIGltcG9ydENvbnRlbnQsIHBvc3RmaXgpCisKKyAgICBkZWYgaW5saW5l
U3R5bGVzaGVldChtYXRjaCk6CisgICAgICAgIHJldHVybiBpbmxpbmUobWF0Y2gsIGNzc21pbi5j
c3NtaW5pZnksICI8c3R5bGU+IiwgIjwvc3R5bGU+IikKKworICAgIGRlZiBpbmxpbmVTY3JpcHQo
bWF0Y2gpOgorICAgICAgICByZXR1cm4gaW5saW5lKG1hdGNoLCBqc21pbi5qc21pbiwgIjxzY3Jp
cHQ+IiwgIjwvc2NyaXB0PiIpCisKKyAgICBvdXRwdXRDb250ZW50ID0gcmUuc3ViKHInPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPVtcJyJdKFteXCciXSspW1wnIl0+JywgaW5saW5lU3R5bGVz
aGVldCwgaW5wdXRDb250ZW50KQorICAgIG91dHB1dENvbnRlbnQgPSByZS5zdWIocic8c2NyaXB0
IHNyYz1bXCciXShbXlwnIl0rKVtcJyJdPjwvc2NyaXB0PicsIGlubGluZVNjcmlwdCwgb3V0cHV0
Q29udGVudCkKKworICAgIG91dHB1dEZpbGUgPSBvcGVuKG91dHB1dEZpbGVOYW1lLCAndycpCisg
ICAgb3V0cHV0RmlsZS53cml0ZShvdXRwdXRDb250ZW50KQorICAgIG91dHB1dEZpbGUuY2xvc2Uo
KQorCisgICAgIyBUb3VjaCBvdXRwdXQgZmlsZSBkaXJlY3RvcnkgdG8gbWFrZSBzdXJlIHRoYXQg
WGNvZGUgd2lsbCBjb3B5CisgICAgIyBtb2RpZmllZCByZXNvdXJjZSBmaWxlcy4KKyAgICBpZiBz
eXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6CisgICAgICAgIG91dHB1dERpck5hbWUgPSBvcy5wYXRo
LmRpcm5hbWUob3V0cHV0RmlsZU5hbWUpCisgICAgICAgIG9zLnV0aW1lKG91dHB1dERpck5hbWUs
IE5vbmUpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihz
eXMuYXJndikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9qc21p
bi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2pzbWluLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgzZDJhNTBhYzk1ZDhhMGE3MDllNTNkZGRiN2I4YTU1ZGZhYmEzY2QKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9qc21pbi5weQpAQCAtMCwwICsxLDIz
OCBAQAorIyBUaGlzIGNvZGUgaXMgb3JpZ2luYWwgZnJvbSBqc21pbiBieSBEb3VnbGFzIENyb2Nr
Zm9yZCwgaXQgd2FzIHRyYW5zbGF0ZWQgdG8KKyMgUHl0aG9uIGJ5IEJhcnVjaCBFdmVuLiBJdCB3
YXMgcmV3cml0dGVuIGJ5IERhdmUgU3QuR2VybWFpbiBmb3Igc3BlZWQuCisjCisjIFRoZSBNSVQg
TGljZW5zZSAoTUlUKQorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgRGF2ZSBTdC5HZXJtYWluCisj
CisjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyMgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKyMgaW4gdGhl
IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp
b24gdGhlIHJpZ2h0cworIyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisjIGNvcGllcyBvZiB0aGUgU29mdHdh
cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworIyBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIwor
IyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZCBpbgorIyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBTb2Z0d2FyZS4KKyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyMgSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFksCisjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorIyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisjIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HIEZST00sCisjIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KKyMgVEhFIFNPRlRXQVJFLgorCisKK2ltcG9y
dCBzeXMKK2lzXzMgPSBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKQoraWYgaXNfMzoKKyAgICBp
bXBvcnQgaW8KK2Vsc2U6CisgICAgaW1wb3J0IFN0cmluZ0lPCisgICAgdHJ5OgorICAgICAgICBp
bXBvcnQgY1N0cmluZ0lPCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBjU3RyaW5n
SU8gPSBOb25lCisKKworX19hbGxfXyA9IFsnanNtaW4nLCAnSmF2YXNjcmlwdE1pbmlmeSddCitf
X3ZlcnNpb25fXyA9ICcyLjAuOScKKworCitkZWYganNtaW4oanMpOgorICAgICIiIgorICAgIHJl
dHVybnMgYSBtaW5pZmllZCB2ZXJzaW9uIG9mIHRoZSBqYXZhc2NyaXB0IHN0cmluZworICAgICIi
IgorICAgIGlmIG5vdCBpc18zOgorICAgICAgICBpZiBjU3RyaW5nSU8gYW5kIG5vdCBpc2luc3Rh
bmNlKGpzLCB1bmljb2RlKToKKyAgICAgICAgICAgICMgc3RyaW5ncyBjYW4gdXNlIGNTdHJpbmdJ
TyBmb3IgYSAzeCBwZXJmb3JtYW5jZQorICAgICAgICAgICAgIyBpbXByb3ZlbWVudCwgYnV0IHVu
aWNvZGUgKGluIHB5dGhvbjIpIGNhbm5vdAorICAgICAgICAgICAga2xhc3MgPSBjU3RyaW5nSU8u
U3RyaW5nSU8KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGtsYXNzID0gU3RyaW5nSU8uU3Ry
aW5nSU8KKyAgICBlbHNlOgorICAgICAgICBrbGFzcyA9IGlvLlN0cmluZ0lPCisgICAgaW5zID0g
a2xhc3MoanMpCisgICAgb3V0cyA9IGtsYXNzKCkKKyAgICBKYXZhc2NyaXB0TWluaWZ5KGlucywg
b3V0cykubWluaWZ5KCkKKyAgICByZXR1cm4gb3V0cy5nZXR2YWx1ZSgpCisKKworY2xhc3MgSmF2
YXNjcmlwdE1pbmlmeShvYmplY3QpOgorICAgICIiIgorICAgIE1pbmlmeSBhbiBpbnB1dCBzdHJl
YW0gb2YgamF2YXNjcmlwdCwgd3JpdGluZworICAgIHRvIGFuIG91dHB1dCBzdHJlYW0KKyAgICAi
IiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbnN0cmVhbT1Ob25lLCBvdXRzdHJlYW09Tm9u
ZSk6CisgICAgICAgIHNlbGYuaW5zID0gaW5zdHJlYW0KKyAgICAgICAgc2VsZi5vdXRzID0gb3V0
c3RyZWFtCisKKyAgICBkZWYgbWluaWZ5KHNlbGYsIGluc3RyZWFtPU5vbmUsIG91dHN0cmVhbT1O
b25lKToKKyAgICAgICAgaWYgaW5zdHJlYW0gYW5kIG91dHN0cmVhbToKKyAgICAgICAgICAgIHNl
bGYuaW5zLCBzZWxmLm91dHMgPSBpbnN0cmVhbSwgb3V0c3RyZWFtCisKKyAgICAgICAgc2VsZi5p
c19yZXR1cm4gPSBGYWxzZQorICAgICAgICBzZWxmLnJldHVybl9idWYgPSAnJworCisgICAgICAg
IGRlZiB3cml0ZShjaGFyKToKKyAgICAgICAgICAgICMgYWxsIG9mIHRoaXMgaXMgdG8gc3VwcG9y
dCBsaXRlcmFsIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCisgICAgICAgICAgICAjIHNpZ2gKKyAgICAg
ICAgICAgIGlmIGNoYXIgaW4gJ3JldHVybic6CisgICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5f
YnVmICs9IGNoYXIKKyAgICAgICAgICAgICAgICBzZWxmLmlzX3JldHVybiA9IHNlbGYucmV0dXJu
X2J1ZiA9PSAncmV0dXJuJworICAgICAgICAgICAgc2VsZi5vdXRzLndyaXRlKGNoYXIpCisgICAg
ICAgICAgICBpZiBzZWxmLmlzX3JldHVybjoKKyAgICAgICAgICAgICAgICBzZWxmLnJldHVybl9i
dWYgPSAnJworCisgICAgICAgIHJlYWQgPSBzZWxmLmlucy5yZWFkCisKKyAgICAgICAgc3BhY2Vf
c3RyaW5ncyA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJcCisgICAgICAgICJBQkNERUZH
SElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODlfJFxcIgorICAgICAgICBzdGFydGVycywgZW5k
ZXJzID0gJ3tbKCstJywgJ31dKSstIlwnJworICAgICAgICBuZXdsaW5lc3RhcnRfc3RyaW5ncyA9
IHN0YXJ0ZXJzICsgc3BhY2Vfc3RyaW5ncworICAgICAgICBuZXdsaW5lZW5kX3N0cmluZ3MgPSBl
bmRlcnMgKyBzcGFjZV9zdHJpbmdzCisgICAgICAgIGRvX25ld2xpbmUgPSBGYWxzZQorICAgICAg
ICBkb19zcGFjZSA9IEZhbHNlCisgICAgICAgIGVzY2FwZV9zbGFzaF9jb3VudCA9IDAKKyAgICAg
ICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBGYWxzZQorICAgICAgICBwcmV2aW91c19iZWZvcmVf
Y29tbWVudCA9ICcnCisgICAgICAgIGRvaW5nX211bHRpX2NvbW1lbnQgPSBGYWxzZQorICAgICAg
ICBpbl9yZSA9IEZhbHNlCisgICAgICAgIGluX3F1b3RlID0gJycKKyAgICAgICAgcXVvdGVfYnVm
ID0gW10KKworICAgICAgICBwcmV2aW91cyA9IHJlYWQoMSkKKyAgICAgICAgaWYgcHJldmlvdXMg
PT0gJ1xcJzoKKyAgICAgICAgICAgIGVzY2FwZV9zbGFzaF9jb3VudCArPSAxCisgICAgICAgIG5l
eHQxID0gcmVhZCgxKQorICAgICAgICBpZiBwcmV2aW91cyA9PSAnLyc6CisgICAgICAgICAgICBp
ZiBuZXh0MSA9PSAnLyc6CisgICAgICAgICAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBU
cnVlCisgICAgICAgICAgICBlbGlmIG5leHQxID09ICcqJzoKKyAgICAgICAgICAgICAgICBkb2lu
Z19tdWx0aV9jb21tZW50ID0gVHJ1ZQorICAgICAgICAgICAgICAgIHByZXZpb3VzID0gbmV4dDEK
KyAgICAgICAgICAgICAgICBuZXh0MSA9IHJlYWQoMSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgd3JpdGUocHJldmlvdXMpCisgICAgICAgIGVsaWYgbm90IHByZXZpb3VzOgor
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsaWYgcHJldmlvdXMgPj0gJyEnOgorICAgICAg
ICAgICAgaWYgcHJldmlvdXMgaW4gIidcIiI6CisgICAgICAgICAgICAgICAgaW5fcXVvdGUgPSBw
cmV2aW91cworICAgICAgICAgICAgd3JpdGUocHJldmlvdXMpCisgICAgICAgICAgICBwcmV2aW91
c19ub25fc3BhY2UgPSBwcmV2aW91cworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJldmlv
dXNfbm9uX3NwYWNlID0gJyAnCisgICAgICAgIGlmIG5vdCBuZXh0MToKKyAgICAgICAgICAgIHJl
dHVybgorCisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBuZXh0MiA9IHJlYWQoMSkKKyAg
ICAgICAgICAgIGlmIG5vdCBuZXh0MjoKKyAgICAgICAgICAgICAgICBsYXN0ID0gbmV4dDEuc3Ry
aXAoKQorICAgICAgICAgICAgICAgIGlmIG5vdCAoZG9pbmdfc2luZ2xlX2NvbW1lbnQgb3IgZG9p
bmdfbXVsdGlfY29tbWVudClcCisgICAgICAgICAgICAgICAgICAgIGFuZCBsYXN0IG5vdCBpbiAo
JycsICcvJyk6CisgICAgICAgICAgICAgICAgICAgIGlmIGluX3F1b3RlOgorICAgICAgICAgICAg
ICAgICAgICAgICAgd3JpdGUoJycuam9pbihxdW90ZV9idWYpKQorICAgICAgICAgICAgICAgICAg
ICB3cml0ZShsYXN0KQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiBkb2lu
Z19tdWx0aV9jb21tZW50OgorICAgICAgICAgICAgICAgIGlmIG5leHQxID09ICcqJyBhbmQgbmV4
dDIgPT0gJy8nOgorICAgICAgICAgICAgICAgICAgICBkb2luZ19tdWx0aV9jb21tZW50ID0gRmFs
c2UKKyAgICAgICAgICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCisgICAgICAgICAgICBlbGlm
IGRvaW5nX3NpbmdsZV9jb21tZW50OgorICAgICAgICAgICAgICAgIGlmIG5leHQxIGluICdcclxu
JzoKKyAgICAgICAgICAgICAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBGYWxzZQorICAg
ICAgICAgICAgICAgICAgICB3aGlsZSBuZXh0MiBpbiAnXHJcbic6CisgICAgICAgICAgICAgICAg
ICAgICAgICBuZXh0MiA9IHJlYWQoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBu
ZXh0MjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAg
ICAgICBpZiBwcmV2aW91c19iZWZvcmVfY29tbWVudCBpbiAnKX1dJzoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRvX25ld2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGVsaWYgcHJl
dmlvdXNfYmVmb3JlX2NvbW1lbnQgaW4gc3BhY2Vfc3RyaW5nczoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHdyaXRlKCdcbicpCisgICAgICAgICAgICBlbGlmIGluX3F1b3RlOgorICAgICAgICAg
ICAgICAgIHF1b3RlX2J1Zi5hcHBlbmQobmV4dDEpCisKKyAgICAgICAgICAgICAgICBpZiBuZXh0
MSA9PSBpbl9xdW90ZToKKyAgICAgICAgICAgICAgICAgICAgbnVtc2xhc2hlcyA9IDAKKyAgICAg
ICAgICAgICAgICAgICAgZm9yIGMgaW4gcmV2ZXJzZWQocXVvdGVfYnVmWzotMV0pOgorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgYyAhPSAnXFwnOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG51bXNsYXNoZXMgKz0gMQorICAgICAgICAgICAgICAgICAgICBpZiBudW1z
bGFzaGVzICUgMiA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGUgPSAnJwor
ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUoJycuam9pbihxdW90ZV9idWYpKQorICAgICAg
ICAgICAgZWxpZiBuZXh0MSBpbiAnXHJcbic6CisgICAgICAgICAgICAgICAgaWYgcHJldmlvdXNf
bm9uX3NwYWNlIGluIG5ld2xpbmVlbmRfc3RyaW5ncyBcCisgICAgICAgICAgICAgICAgICAgIG9y
IHByZXZpb3VzX25vbl9zcGFjZSA+ICd+JzoKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgMToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5leHQyIDwgJyEnOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5leHQyID0gcmVhZCgxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBuZXh0MjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgbmV4dDIgaW4gbmV3bGluZXN0YXJ0X3N0cmluZ3MgXAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvciBuZXh0MiA+ICd+JyBvciBuZXh0MiA9PSAnLyc6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvX25ld2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgbmV4dDEgPCAnIScgYW5kIG5vdCBpbl9y
ZToKKyAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNfbm9uX3NwYWNlIGluIHNwYWNlX3N0cmlu
Z3MgXAorICAgICAgICAgICAgICAgICAgICBvciBwcmV2aW91c19ub25fc3BhY2UgPiAnficpIFwK
KyAgICAgICAgICAgICAgICAgICAgYW5kIChuZXh0MiBpbiBzcGFjZV9zdHJpbmdzIG9yIG5leHQy
ID4gJ34nKToKKyAgICAgICAgICAgICAgICAgICAgZG9fc3BhY2UgPSBUcnVlCisgICAgICAgICAg
ICAgICAgZWxpZiBwcmV2aW91c19ub25fc3BhY2UgaW4gJy0rJyBhbmQgbmV4dDIgPT0gcHJldmlv
dXNfbm9uX3NwYWNlOgorICAgICAgICAgICAgICAgICAgICAjIHByb3RlY3QgYWdhaW5zdCArICsr
IG9yIC0gLS0gc2VxdWVuY2VzCisgICAgICAgICAgICAgICAgICAgIGRvX3NwYWNlID0gVHJ1ZQor
ICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5pc19yZXR1cm4gYW5kIG5leHQyID09ICcvJzoKKyAg
ICAgICAgICAgICAgICAgICAgIyByZXR1cm5pbmcgYSByZWdleC4uLgorICAgICAgICAgICAgICAg
ICAgICB3cml0ZSgnICcpCisgICAgICAgICAgICBlbGlmIG5leHQxID09ICcvJzoKKyAgICAgICAg
ICAgICAgICBpZiBkb19zcGFjZToKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQorICAg
ICAgICAgICAgICAgIGlmIGluX3JlOgorICAgICAgICAgICAgICAgICAgICBpZiBwcmV2aW91cyAh
PSAnXFwnIG9yIChub3QgZXNjYXBlX3NsYXNoX2NvdW50ICUgMikgb3IgbmV4dDIgaW4gJ2dpbXkn
OgorICAgICAgICAgICAgICAgICAgICAgICAgaW5fcmUgPSBGYWxzZQorICAgICAgICAgICAgICAg
ICAgICB3cml0ZSgnLycpCisgICAgICAgICAgICAgICAgZWxpZiBuZXh0MiA9PSAnLyc6CisgICAg
ICAgICAgICAgICAgICAgIGRvaW5nX3NpbmdsZV9jb21tZW50ID0gVHJ1ZQorICAgICAgICAgICAg
ICAgICAgICBwcmV2aW91c19iZWZvcmVfY29tbWVudCA9IHByZXZpb3VzX25vbl9zcGFjZQorICAg
ICAgICAgICAgICAgIGVsaWYgbmV4dDIgPT0gJyonOgorICAgICAgICAgICAgICAgICAgICBkb2lu
Z19tdWx0aV9jb21tZW50ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBwcmV2aW91cyA9IG5l
eHQxCisgICAgICAgICAgICAgICAgICAgIG5leHQxID0gbmV4dDIKKyAgICAgICAgICAgICAgICAg
ICAgbmV4dDIgPSByZWFkKDEpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgaW5fcmUgPSBwcmV2aW91c19ub25fc3BhY2UgaW4gJygsPTpbPyEmfCcgb3Igc2VsZi5p
c19yZXR1cm4gICMgbGl0ZXJhbCByZWd1bGFyIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAg
ICAgd3JpdGUoJy8nKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBkb19z
cGFjZToKKyAgICAgICAgICAgICAgICAgICAgZG9fc3BhY2UgPSBGYWxzZQorICAgICAgICAgICAg
ICAgICAgICB3cml0ZSgnICcpCisgICAgICAgICAgICAgICAgaWYgZG9fbmV3bGluZToKKyAgICAg
ICAgICAgICAgICAgICAgd3JpdGUoJ1xuJykKKyAgICAgICAgICAgICAgICAgICAgZG9fbmV3bGlu
ZSA9IEZhbHNlCisKKyAgICAgICAgICAgICAgICB3cml0ZShuZXh0MSkKKyAgICAgICAgICAgICAg
ICBpZiBub3QgaW5fcmUgYW5kIG5leHQxIGluICInXCIiOgorICAgICAgICAgICAgICAgICAgICBp
bl9xdW90ZSA9IG5leHQxCisgICAgICAgICAgICAgICAgICAgIHF1b3RlX2J1ZiA9IFtdCisKKyAg
ICAgICAgICAgIHByZXZpb3VzID0gbmV4dDEKKyAgICAgICAgICAgIG5leHQxID0gbmV4dDIKKwor
ICAgICAgICAgICAgaWYgcHJldmlvdXMgPj0gJyEnOgorICAgICAgICAgICAgICAgIHByZXZpb3Vz
X25vbl9zcGFjZSA9IHByZXZpb3VzCisKKyAgICAgICAgICAgIGlmIHByZXZpb3VzID09ICdcXCc6
CisgICAgICAgICAgICAgICAgZXNjYXBlX3NsYXNoX2NvdW50ICs9IDEKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgZXNjYXBlX3NsYXNoX2NvdW50ID0gMAorCitpZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgorICAgIG1pbmlmaWVyID0gSmF2YXNjcmlwdE1pbmlmeShzeXMuc3Rk
aW4sIHN5cy5zdGRvdXQpCisgICAgbWluaWZpZXIubWluaWZ5KCkKKyAgICBzeXMuc3Rkb3V0Lndy
aXRlKCdcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy94eGQu
cGwgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy94eGQucGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVl
MDhhNTJkOGU2NmNmZGEzYzA4M2Y3YWRiMTVmOTZjMDhhOWIwYwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3h4ZC5wbApAQCAtMCwwICsxLDQ1IEBACisj
ISAvdXNyL2Jpbi9wZXJsCisKKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMg
bWV0OgorIworIyAgICAjIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgIyBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICMgTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisKKyR2YXJuYW1lID0gc2hp
ZnQ7CiskZm5hbWUgPSBzaGlmdDsKKyRvdXRwdXQgPSBzaGlmdDsKKworb3BlbigkaW5wdXQsICc8
JywgJGZuYW1lKSBvciBkaWUgIkNhbid0IG9wZW4gZmlsZSBmb3IgcmVhZDogJGZuYW1lICQhIjsK
KyQvID0gdW5kZWY7CiskdGV4dCA9IDwkaW5wdXQ+OworY2xvc2UoJGlucHV0KTsKKworJHRleHQg
PSBqb2luKCcsICcsIG1hcCgnMHgnIC4gdW5wYWNrKCJIKiIsICRfKSwgc3BsaXQodW5kZWYsICR0
ZXh0KSkpOworCitvcGVuKCRvdXRwdXQsICc+JywgJG91dHB1dCkgb3IgZGllICJDYW4ndCBvcGVu
IGZpbGUgZm9yIHdyaXRlOiAkb3V0cHV0ICQhIjsKK3ByaW50ICRvdXRwdXQgImNvbnN0IHVuc2ln
bmVkIGNoYXIgJHZhcm5hbWVcW1xdID0ge1xuJHRleHRcbn07XG4iOworY2xvc2UoJG91dHB1dCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRmZjQxODczZGEyYjY1YTc3MTE0Y2Y1ZDQxZTg3YTRjMGQzMDYz
N2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisrKyAvZGV2L251bGwKQEAgLTEs
MzQzICswLDAgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0jIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0jIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0jIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgYXJn
cGFyc2UKLWltcG9ydCBmaWxlY21wCi1pbXBvcnQgZm5tYXRjaAotaW1wb3J0IG9zCi1pbXBvcnQg
cmUKLWltcG9ydCBzaHV0aWwKLWltcG9ydCBzeXMKLWltcG9ydCBkYXRldGltZQotaW1wb3J0IGpz
b24KLQotcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQotcGFyc2VyLmFkZF9hcmd1
bWVudCgnaW5wdXRfZmlsZScsIG5hcmdzPScqJywgaGVscD0nSW5wdXQgSlMgZmlsZXMgd2hpY2gg
YnVpbHRpbnMgZ2VuZXJhdGVkIGZyb20nKQotcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbnB1dC1k
aXJlY3RvcnknLCBoZWxwPSdBbGwgSlMgZmlsZXMgd2lsbCBiZSB1c2VkIGFzIGlucHV0IGZyb20g
dGhpcyBkaXJlY3RvcnkuJykKLXBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0JywgaGVscD0n
cGF0aCB0byBvdXRwdXQgY3BwIG9yIGggZmlsZScpCi1wYXJzZXIuYWRkX2FyZ3VtZW50KCctLXBy
ZWZpeCcsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J3ByZWZpeCB1c2VkIGZvciBwdWJsaWMgbWFjcm9z
JykKLXBhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFtZXNwYWNlJywgZGVmYXVsdD0nSlNDJywgaGVs
cD0nQysrIG5hbWVzcGFjZScpCi1hcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotCi1jb3B5cmln
aHRUZXh0ID0gIiIiICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi9cbgot
IiIiCi0KLWdlbmVyYXRvclN0cmluZyA9ICIvKiBHZW5lcmF0ZWQgYnkgJXMgZG8gbm90IGhhbmQg
ZWRpdC4gKi9cbiIgJSBvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKQotCi1mdW5jdGlvbkhlYWRS
ZWdFeHAgPSByZS5jb21waWxlKHIiKD86ZnVuY3Rpb258Y29uc3RydWN0b3IpXHMrXHcrXHMqXCgu
Kj9cKSIsIHJlLk1VTFRJTElORSB8IHJlLlMpCi1mdW5jdGlvbk5hbWVSZWdFeHAgPSByZS5jb21w
aWxlKHIiKD86ZnVuY3Rpb258Y29uc3RydWN0b3IpXHMrKFx3KylccypcKCIsIHJlLk1VTFRJTElO
RSB8IHJlLlMpCi1mdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiXmNv
bnN0cnVjdG9yIiwgcmUuTVVMVElMSU5FIHwgcmUuUykKLWZ1bmN0aW9uUGFyYW1ldGVyRmluZGVy
ID0gcmUuY29tcGlsZShyIl4oPzpmdW5jdGlvbnxjb25zdHJ1Y3RvcilccysoPzpcdyspXHMqXCgo
KD86XHMqXHcrKT9ccyooPzpccyosXHMqXHcrKSopP1xzKlwpIiwgcmUuTVVMVElMSU5FIHwgcmUu
UykKLQotbXVsdGlsaW5lQ29tbWVudFJlZ0V4cCA9IHJlLmNvbXBpbGUociJcL1wqLio/XCpcLyIs
IHJlLk1VTFRJTElORSB8IHJlLlMpCi1zaW5nbGVMaW5lQ29tbWVudFJlZ0V4cCA9IHJlLmNvbXBp
bGUociJcL1wvLio/XG4iLCByZS5NVUxUSUxJTkUgfCByZS5TKQotCi1kZWYgZ2V0Q29weXJpZ2h0
KHNvdXJjZSk6Ci0gICAgY29weXJpZ2h0QmxvY2sgPSBtdWx0aWxpbmVDb21tZW50UmVnRXhwLmZp
bmRhbGwoc291cmNlKVswXQotICAgIGNvcHlyaWdodEJsb2NrID0gY29weXJpZ2h0QmxvY2tbOmNv
cHlyaWdodEJsb2NrLmluZGV4KCJSZWRpc3RyaWJ1dGlvbiIpXQotICAgIGNvcHlSaWdodExpbmVz
ID0gW10KLQotICAgIGZvciBsaW5lIGluIGNvcHlyaWdodEJsb2NrLnNwbGl0KCJcbiIpOgotICAg
ICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCIvKiIsICIiKQotICAgICAgICBsaW5lID0gbGluZS5y
ZXBsYWNlKCIqLyIsICIiKQotICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCIqIiwgIiIpCi0g
ICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIkNvcHlyaWdodCIsICIiKQotICAgICAgICBsaW5l
ID0gbGluZS5yZXBsYWNlKCJjb3B5cmlnaHQiLCAiIikKLSAgICAgICAgbGluZSA9IGxpbmUucmVw
bGFjZSgiKEMpIiwgIiIpCi0gICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIihjKSIsICIiKQot
ICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCi0gICAgICAgIGlmIGxlbihsaW5lKSA9PSAwOgot
ICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBjb3B5UmlnaHRMaW5lcy5hcHBlbmQobGlu
ZSkKLSAgICAKLSAgICByZXR1cm4gbGlzdChzZXQoY29weVJpZ2h0TGluZXMpKQotCi1jbGFzcyBG
dW5jdGlvbihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzb3VyY2UsIGlz
Q29uc3RydWN0b3IsIHBhcmFtZXRlcnMpOgotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAg
ICAgIHNlbGYuc291cmNlID0gc291cmNlCi0gICAgICAgIHNlbGYuaXNDb25zdHJ1Y3RvciA9IGlz
Q29uc3RydWN0b3IKLSAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycwotCi0gICAg
ZGVmIG1hbmdsZU5hbWUoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgcU5hbWUgPSBvYmplY3QgKyAi
LiIgKyBzZWxmLm5hbWUKLSAgICAgICAgbWFuZ2xlZE5hbWUgPSAiIgotICAgICAgICBpID0gMAot
ICAgICAgICB3aGlsZSBpIDwgbGVuKHFOYW1lKToKLSAgICAgICAgICAgIGlmIHFOYW1lW2ldID09
ICcuJzoKLSAgICAgICAgICAgICAgICBtYW5nbGVkTmFtZSA9IG1hbmdsZWROYW1lICsgcU5hbWVb
aSArIDFdLnVwcGVyKCkKLSAgICAgICAgICAgICAgICBpID0gaSArIDEKLSAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5nbGVkTmFtZSArIHFOYW1lW2ld
Ci0gICAgICAgICAgICBpID0gaSArIDEKLSAgICAgICAgaWYgc2VsZi5pc0NvbnN0cnVjdG9yOgot
ICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5nbGVkTmFtZSArICJDb25zdHJ1Y3RvciIKLSAg
ICAgICAgcmV0dXJuIG1hbmdsZWROYW1lCi0KLWRlZiBnZXRGdW5jdGlvbnMoc291cmNlKToKLQot
ICAgIHNvdXJjZSA9IG11bHRpbGluZUNvbW1lbnRSZWdFeHAuc3ViKCIvKiovIiwgc2luZ2xlTGlu
ZUNvbW1lbnRSZWdFeHAuc3ViKCIvL1xuIiwgc291cmNlKSkKLQotICAgIG1hdGNoZXMgPSBbIGYg
Zm9yIGYgaW4gZnVuY3Rpb25IZWFkUmVnRXhwLmZpbmRpdGVyKHNvdXJjZSldCi0gICAgZnVuY3Rp
b25Cb3VuZHMgPSBbXQotICAgIHN0YXJ0ID0gMAotICAgIGVuZCA9IDAKLSAgICBmb3IgbWF0Y2gg
aW4gbWF0Y2hlczoKLSAgICAgICAgc3RhcnQgPSBtYXRjaC5zdGFydCgpCi0gICAgICAgIGlmIHN0
YXJ0IDwgZW5kOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZW5kID0gbWF0Y2guZW5k
KCkKLSAgICAgICAgd2hpbGUgc291cmNlW2VuZF0gIT0gJ3snOgotICAgICAgICAgICAgZW5kID0g
ZW5kICsgMQotICAgICAgICBkZXB0aCA9IDEKLSAgICAgICAgZW5kID0gZW5kICsgMQotICAgICAg
ICB3aGlsZSBkZXB0aCA+IDA6Ci0gICAgICAgICAgICBpZiBzb3VyY2VbZW5kXSA9PSAneyc6Ci0g
ICAgICAgICAgICAgICAgZGVwdGggPSBkZXB0aCArIDEKLSAgICAgICAgICAgIGVsaWYgc291cmNl
W2VuZF0gPT0gJ30nOgotICAgICAgICAgICAgICAgIGRlcHRoID0gZGVwdGggLSAxCi0gICAgICAg
ICAgICBlbmQgPSBlbmQgKyAxCi0gICAgICAgIGZ1bmN0aW9uQm91bmRzLmFwcGVuZCgoc3RhcnQs
IGVuZCkpCi0KLSAgICBmdW5jdGlvbnMgPSBbc291cmNlW3N0YXJ0OmVuZF0uc3RyaXAoKSBmb3Ig
KHN0YXJ0LCBlbmQpIGluIGZ1bmN0aW9uQm91bmRzXQotICAgIHJlc3VsdCA9IFtdCi0gICAgZm9y
IGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgZnVuY3Rpb24gPSBtdWx0aWxpbmVDb21t
ZW50UmVnRXhwLnN1YigiIiwgZnVuY3Rpb24pCi0gICAgICAgIGZ1bmN0aW9uTmFtZSA9IGZ1bmN0
aW9uTmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9uKVswXQotICAgICAgICBmdW5jdGlvbklzQ29u
c3RydWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2goZnVuY3Rpb24pICE9
IE5vbmUKLSAgICAgICAgZnVuY3Rpb25QYXJhbWV0ZXJzID0gZnVuY3Rpb25QYXJhbWV0ZXJGaW5k
ZXIuZmluZGFsbChmdW5jdGlvbilbMF0uc3BsaXQoJywnKQotICAgICAgICBpZiBsZW4oZnVuY3Rp
b25QYXJhbWV0ZXJzWzBdKSA9PSAwOgotICAgICAgICAgICAgZnVuY3Rpb25QYXJhbWV0ZXJzID0g
W10KLQotICAgICAgICByZXN1bHQuYXBwZW5kKEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSwgZnVuY3Rp
b24sIGZ1bmN0aW9uSXNDb25zdHJ1Y3RvciwgZnVuY3Rpb25QYXJhbWV0ZXJzKSkKLSAgICByZXR1
cm4gcmVzdWx0Ci0KLWRlZiB3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKHdyaXRlciwgaGVhZGVyTmFt
ZXMpOgotICAgIGZvciBoZWFkZXJOYW1lIGluIGhlYWRlck5hbWVzOgotICAgICAgICB3cml0ZXIu
d3JpdGUoIiNpbmNsdWRlICIgKyBoZWFkZXJOYW1lICsgIlxuIikKLQotZGVmIGdlbmVyYXRlQ29k
ZShzb3VyY2UpOgotICAgIGlucHV0RmlsZSA9IG9wZW4oc291cmNlLCAiciIpCi0gICAgYmFzZU5h
bWUgPSBvcy5wYXRoLmJhc2VuYW1lKHNvdXJjZSkucmVwbGFjZSgiLmpzIiwgIiIpCi0gICAgCi0g
ICAgc291cmNlID0gIiIKLSAgICBmb3IgbGluZSBpbiBpbnB1dEZpbGU6Ci0gICAgICAgIHNvdXJj
ZSA9IHNvdXJjZSArIGxpbmUKLSAgICAKLSAgICBpZiBzeXMucGxhdGZvcm0gPT0gImN5Z3dpbiI6
Ci0gICAgICAgIHNvdXJjZSA9IHNvdXJjZS5yZXBsYWNlKCJcclxuIiwgIlxuIikKLSAgICByZXR1
cm4gKGJhc2VOYW1lLCBnZXRGdW5jdGlvbnMoc291cmNlKSwgZ2V0Q29weXJpZ2h0KHNvdXJjZSkp
Ci0KLWJ1aWx0aW5zID0gW10KLWNvcHlyaWdodHMgPSBbXQotKG91dHB1dF9iYXNlLCBfKSA9IG9z
LnBhdGguc3BsaXRleHQoYXJncy5vdXRwdXQpCi0KLWlmIGFyZ3MuaW5wdXRfZGlyZWN0b3J5Ogot
ICAgIGZvciBmaWxlIGluIG9zLmxpc3RkaXIoYXJncy5pbnB1dF9kaXJlY3RvcnkpOgotICAgICAg
ICBhcmdzLmlucHV0X2ZpbGUuYXBwZW5kKG9zLnBhdGguam9pbihhcmdzLmlucHV0X2RpcmVjdG9y
eSwgZmlsZSkpCi0KLWZvciBmaWxlIGluIGFyZ3MuaW5wdXRfZmlsZToKLSAgICBpZiBmbm1hdGNo
LmZubWF0Y2goZmlsZSwgJyouanMnKToKLSAgICAgICAgKGJhc2VOYW1lLCBmdW5jdGlvbnMsIG9i
amVjdENvcHlyaWdodHMpID0gZ2VuZXJhdGVDb2RlKGZpbGUpCi0gICAgICAgIGNvcHlyaWdodHMu
ZXh0ZW5kKG9iamVjdENvcHlyaWdodHMpCi0gICAgICAgIGJ1aWx0aW5zLmFwcGVuZCgoYmFzZU5h
bWUsIGZ1bmN0aW9ucykpCi1uYW1lc3BhY2UgPSBhcmdzLm5hbWVzcGFjZQotbWFjcm9QcmVmaXgg
PSBhcmdzLnByZWZpeAotc2NvcGVOYW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2Vu
YW1lKGFyZ3Mub3V0cHV0KSlbMF0KLWluY2x1ZGVHdWFyZCA9IHNjb3BlTmFtZSArICJfSCIKLWhl
YWRlck5hbWUgPSBzY29wZU5hbWUgKyAiLmgiCi0KLWhlYWRlckluY2x1ZGVzID0gWyJcIkJ1aWx0
aW5VdGlscy5oXCIiXSBpZiBuYW1lc3BhY2UgPT0gIkpTQyIgZWxzZSBbIjxidWlsdGlucy9CdWls
dGluVXRpbHMuaD4iXQotY29udGVudEluY2x1ZGVzID0gWyJcIkJ1aWx0aW5FeGVjdXRhYmxlcy5o
XCIiLCAiXCJFeGVjdXRhYmxlLmhcIiIsICJcIkpTQ2VsbElubGluZXMuaFwiIiwgIlwiVk0uaFwi
Il0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2UgWyI8cnVudGltZS9FeGVjdXRhYmxlLmg+Iiwg
IjxydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaD4iLCAiPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaD4iLCAiPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPiIsICI8cnVudGltZS9WTS5oPiIsICJc
IldlYkNvcmVKU0NsaWVudERhdGEuaFwiIl0KLQotY29weXJpZ2h0cyA9IGxpc3Qoc2V0KGNvcHly
aWdodHMpKQotCi1jb3B5cmlnaHRCb2R5ID0gIiIKLWZvciBjb3B5cmlnaHQgaW4gY29weXJpZ2h0
czoKLSAgICBjb3B5cmlnaHRCb2R5ID0gY29weXJpZ2h0Qm9keSArIiAqIENvcHlyaWdodCAoQykg
IiArIGNvcHlyaWdodCArICJcbiIKLQotYnVpbHRpbnNIZWFkZXIgPSBvcGVuKG91dHB1dF9iYXNl
ICsgIi5oLnRtcCIsICJ3IikKLWJ1aWx0aW5zSW1wbGVtZW50YXRpb24gPSBvcGVuKG91dHB1dF9i
YXNlICsgIi5jcHAudG1wIiwgInciKQotY29weXJpZ2h0VGV4dCA9ICIvKlxuIiArIGNvcHlyaWdo
dEJvZHkgKyBjb3B5cmlnaHRUZXh0Ci1idWlsdGluc0hlYWRlci53cml0ZSgiIiIlcwotJXMKLQot
I2lmbmRlZiAlcwotI2RlZmluZSAlcwotCi0iIiIgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmln
aHRUZXh0LCBpbmNsdWRlR3VhcmQsIGluY2x1ZGVHdWFyZCkpCi0KLXdyaXRlSW5jbHVkZURpcmVj
dGl2ZXMoYnVpbHRpbnNIZWFkZXIsIGhlYWRlckluY2x1ZGVzKQotCi1idWlsdGluc0hlYWRlci53
cml0ZSgiIiIKLW5hbWVzcGFjZSBKU0MgewotICAgIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsK
LX0KLQotbmFtZXNwYWNlICVzIHsKLQotIiIiICUgbmFtZXNwYWNlKQotCi1jb2RlUmVmZXJlbmNl
cyA9IFtdCi0KLWZvciAob2JqZWN0TmFtZSwgZnVuY3Rpb25zKSBpbiBidWlsdGluczoKLSAgICBw
cmludCgiR2VuZXJhdGluZyBiaW5kaW5ncyBmb3IgdGhlICVzIGJ1aWx0aW4uIiAlIG9iamVjdE5h
bWUpCi0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIi8qICVzIGZ1bmN0aW9ucyAqL1xuIiAlIG9i
amVjdE5hbWUpCi0gICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgbmFtZSA9
IGZ1bmN0aW9uLm5hbWUKLSAgICAgICAgbWFuZ2xlZE5hbWUgPSBmdW5jdGlvbi5tYW5nbGVOYW1l
KG9iamVjdE5hbWUpCi0gICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xlZE5hbWVbMF0ubG93ZXIo
KSArIG1hbmdsZWROYW1lWzE6XSArICJDb2RlIgotICAgICAgICBjb2RlUmVmZXJlbmNlcy5hcHBl
bmQoKG1hbmdsZWROYW1lLCBmdW5jdGlvbikpCi0gICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRl
KCJleHRlcm4gY29uc3QgY2hhciogc18lcztcbiIgJSBtYW5nbGVkTmFtZSkKLSAgICAgICAgYnVp
bHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBpbnQgc18lc0xlbmd0aDtcbiIgJSBtYW5n
bGVkTmFtZSkKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0cnVjdEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUp
Ci0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuIikKLSAgICBidWlsdGluc0hlYWRlci53cml0
ZSgiI2RlZmluZSAlc19GT1JFQUNIXyVzX0JVSUxUSU4obWFjcm8pIFxcXG4iICUgKG1hY3JvUHJl
Zml4LCBvYmplY3ROYW1lLnJlcGxhY2UoIi4iLCAiXyIpLnVwcGVyKCkpKQotICAgIGZvciBmdW5j
dGlvbiBpbiBmdW5jdGlvbnM6Ci0gICAgICAgIG1hbmdsZWROYW1lID0gZnVuY3Rpb24ubWFuZ2xl
TmFtZShvYmplY3ROYW1lKQotICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3Jv
KCVzLCAlcywgJWQpIFxcXG4iICUgKGZ1bmN0aW9uLm5hbWUsIG1hbmdsZWROYW1lLCBsZW4oZnVu
Y3Rpb24ucGFyYW1ldGVycykpKQotICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIpCi0gICAg
Zm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUo
IiNkZWZpbmUgJXNfQlVJTFRJTl8lcyAxXG4iICUgKG1hY3JvUHJlZml4LCBmdW5jdGlvbi5tYW5n
bGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpKQotICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJc
blxuIikKLW5hbWVzID0gW10KLWJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVB
Q0hfQlVJTFRJTihtYWNybylcXFxuIiAlIG1hY3JvUHJlZml4KQotZm9yIChjb2RlUmVmZXJlbmNl
LCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6Ci0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUo
IiAgICBtYWNybyglcywgJXMsIHNfJXNMZW5ndGgpIFxcXG4iICUgKGNvZGVSZWZlcmVuY2UsIGZ1
bmN0aW9uLm5hbWUsIGNvZGVSZWZlcmVuY2UpKQotICAgIG5hbWVzLmFwcGVuZChmdW5jdGlvbi5u
YW1lKQotCi1idWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCi1idWlsdGluc0hlYWRlci53cml0
ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFxcbiIg
JSBtYWNyb1ByZWZpeCkKLWZvciBuYW1lIGluIHNvcnRlZChzZXQobmFtZXMpKToKLSAgICBidWls
dGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzKSBcXFxuIiAlIG5hbWUpCi1idWlsdGluc0hl
YWRlci53cml0ZSgiIiIKLQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVO
YW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCi0gICAgSlNDOjpGdW5jdGlvbkV4
ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwotCi0lc19GT1JFQUNIX0JV
SUxUSU4oREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5f
R0VORVJBVE9SCi0KLSNkZWZpbmUgJXNfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVmaW5lZCAlc19C
VUlMVElOXyAjIyBuYW1lCi0KLX0KLQotI2VuZGlmIC8vICVzCi0KLSIiIiAlIChtYWNyb1ByZWZp
eCwgbWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBpbmNsdWRlR3VhcmQpKQotCi1idWlsdGluc0lt
cGxlbWVudGF0aW9uLndyaXRlKCIiIiVzCi0lcwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
bmNsdWRlICIlcyIKLQotIiIiICAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQsIGhl
YWRlck5hbWUpKQotCi13cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSW1wbGVtZW50YXRp
b24sIGNvbnRlbnRJbmNsdWRlcykKLQotYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIK
LW5hbWVzcGFjZSAlcyB7Ci0KLSIiIiAgJSAobmFtZXNwYWNlKSkKLQotCi0KLWZvciAoY29kZVJl
ZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgotICAgIHNvdXJjZSA9IGZ1bmN0
aW9uLnNvdXJjZQotICAgIHNvdXJjZSA9ICIoZnVuY3Rpb24gIiArIHNvdXJjZVtzb3VyY2UuaW5k
ZXgoIigiKTpdICsgIikiCi0gICAgbGluZXMgPSBqc29uLmR1bXBzKHNvdXJjZSlbMTotMV0uc3Bs
aXQoIlxcbiIpCi0gICAgc291cmNlTGVuZ3RoID0gbGVuKHNvdXJjZSkKLSAgICBzb3VyY2UgPSAi
IgotICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyAoIiAg
ICBcIiVzXFxuXCIgXFxcbiIgJSBsaW5lKQotICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3Jp
dGUoImNvbnN0IGNoYXIqIHNfJXMgPVxuJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgc291cmNl
KSkKLSAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBpbnQgc18lc0xlbmd0
aCA9ICVkO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIHNvdXJjZUxlbmd0aCArIDEpKSAjICsgMSBm
b3IgXG4KLSAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fu
bm90Q29uc3RydWN0IgotICAgIGlmIGZ1bmN0aW9uLmlzQ29uc3RydWN0b3I6Ci0gICAgICAgIGNv
bnN0cnVjdEFiaWxpdHkgPSAiSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QiCi0g
ICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5ID0gJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29u
c3RydWN0QWJpbGl0eSkpICMgKyAxIGZvciBcbgotCi1idWlsdGluc0ltcGxlbWVudGF0aW9uLndy
aXRlKCIiIgotI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0
aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLUpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2Rl
TmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXAotIiIiKTsKLQotaWYgKG5hbWVzcGFjZSA9
PSAiSlNDIik6Ci0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ7XFwKLSAgICBy
ZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxp
bmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAot
IiIiKQotZWxzZToKLSAgICBidWlsdGluTmFtZSA9IHNjb3BlTmFtZVswXS5sb3dlcigpICsgc2Nv
cGVOYW1lWzE6XQotICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIie1xcCi0gICAg
SlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+
KHZtLmNsaWVudERhdGEpOyBcXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rp
b25zKCkuJXMoKS5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5i
dWlsdGluRnVuY3Rpb25zKCkuJXMoKS5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAotIiIiJSAoYnVp
bHRpbk5hbWUsIGJ1aWx0aW5OYW1lKSkKLQotYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgi
IiJ9Ci0lc19GT1JFQUNIX0JVSUxUSU4oREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVm
IERFRklORV9CVUlMVElOX0dFTkVSQVRPUgotfQotCi0iIiIlIChtYWNyb1ByZWZpeCkpCi0KLWJ1
aWx0aW5zSGVhZGVyLmNsb3NlKCkKLWJ1aWx0aW5zSW1wbGVtZW50YXRpb24uY2xvc2UoKQotCi1p
ZiAobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpIG9yIChub3QgZmlsZWNt
cC5jbXAob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiLCBzaGFsbG93
PUZhbHNlKSk6Ci0gICAgaWYgKG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpOgot
ICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgiKQotICAgIG9zLnJlbmFtZShvdXRw
dXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFzZSArICIuaCIpCi1lbHNlOgotICAgIG9zLnJl
bW92ZShvdXRwdXRfYmFzZSArICIuaC50bXAiKQotCi1pZiAobm90IG9zLnBhdGguZXhpc3RzKG91
dHB1dF9iYXNlICsgIi5jcHAiKSkgb3IgKG5vdCBmaWxlY21wLmNtcChvdXRwdXRfYmFzZSArICIu
Y3BwLnRtcCIsIG91dHB1dF9iYXNlICsgIi5jcHAiLCBzaGFsbG93PUZhbHNlKSk6Ci0gICAgaWYg
KG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5jcHAiKSk6Ci0gICAgICAgIG9zLnJlbW92
ZShvdXRwdXRfYmFzZSArICIuY3BwIikKLSAgICBvcy5yZW5hbWUob3V0cHV0X2Jhc2UgKyAiLmNw
cC50bXAiLCBvdXRwdXRfYmFzZSArICIuY3BwIikKLWVsc2U6Ci0gICAgb3MucmVtb3ZlKG91dHB1
dF9iYXNlICsgIi5jcHAudG1wIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy9jc3NtaW4ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvY3NzbWluLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDY0
MGViMjg0YmFkZDRmNWM4MmU3MWEzZmNhYzZkOGE3MWUzMDIxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jc3NtaW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0jIS91
c3IvYmluL3B5dGhvbgotCi0jIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1p
bXBvcnQgcmUKLQotZGVmIGNzc21pbmlmeShjc3MpOgotICAgIHJ1bGVzID0gKAotICAgICAgICAo
ciJcL1wqLio/XCpcLyIsICIiKSwgICAgICAgICAgIyBkZWxldGUgY29tbWVudHMKLSAgICAgICAg
KHIiXG4iLCAiIiksICAgICAgICAgICAgICAgICAgICMgZGVsZXRlIG5ldyBsaW5lcwotICAgICAg
ICAociJccysiLCAiICIpLCAgICAgICAgICAgICAgICAgIyBjaGFuZ2UgbXVsdGlwbGUgc3BhY2Vz
IHRvIG9uZSBzcGFjZQotICAgICAgICAociJccz8oWzs6e30sKz5dKVxzPyIsIHIiXDEiKSwgIyBk
ZWxldGUgc3BhY2Ugd2hlcmUgaXQgaXMgbm90IG5lZWRlZAotICAgICAgICAociI7fSIsICJ9Iikg
ICAgICAgICAgICAgICAgICAgIyBjaGFuZ2UgJzt9JyB0byAnfScgYmVjYXVzZSB0aGUgc2VtaWNv
bG9uIGlzIG5vdCBuZWVkZWQKLSAgICApCi0KLSAgICBjc3MgPSBjc3MucmVwbGFjZSgiXHJcbiIs
ICJcbiIpCi0gICAgZm9yIHJ1bGUgaW4gcnVsZXM6Ci0gICAgICAgIGNzcyA9IHJlLmNvbXBpbGUo
cnVsZVswXSwgcmUuTVVMVElMSU5FIHwgcmUuVU5JQ09ERSB8IHJlLkRPVEFMTCkuc3ViKHJ1bGVb
MV0sIGNzcykKLSAgICByZXR1cm4gY3NzCi0KLWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0g
ICAgaW1wb3J0IHN5cwotICAgIHN5cy5zdGRvdXQud3JpdGUoY3NzbWluaWZ5KHN5cy5zdGRpbi5y
ZWFkKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29u
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1MzY2MDMxOGRkY2UzYmE3OGNiYjA2
OTZhMjE3NTgxOTYwZjkxMDEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0
ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAg
QEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUg
bWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLWltcG9ydCBnbG9iCi1pbXBvcnQganNvbgotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0K
LWlmIGxlbihzeXMuYXJndikgPCAyOgotICAgIHByaW50KCJ1c2FnZTogJXMgW2pzb24gZmlsZXMg
b3IgZGlyZWN0b3J5IG9mIGpzb24gZmlsZXMgLi4uXSIgJSBvcy5wYXRoLmJhc2VuYW1lKHN5cy5h
cmd2WzBdKSkKLSAgICBzeXMuZXhpdCgxKQotCi1maWxlcyA9IFtdCi1mb3IgYXJnIGluIHN5cy5h
cmd2WzE6XToKLSAgICBpZiBub3Qgb3MuYWNjZXNzKGFyZywgb3MuRl9PSyk6Ci0gICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigiRmlsZSBcIiVzXCIgbm90IGZvdW5kIiAlIGFyZykKLSAgICBlbGlmIG9z
LnBhdGguaXNkaXIoYXJnKToKLSAgICAgICAgZmlsZXMuZXh0ZW5kKGdsb2IuZ2xvYihvcy5wYXRo
LmpvaW4oYXJnLCAiKi5qc29uIikpKQotICAgIGVsc2U6Ci0gICAgICAgIGZpbGVzLmFwcGVuZChh
cmcpCi1maWxlcy5zb3J0KCkKLQotIyBUbyBrZWVwIGFzIGNsb3NlIHRvIHRoZSBvcmlnaW5hbCBK
U09OIGZvcm1hdHRpbmcgYXMgcG9zc2libGUsIGp1c3QKLSMgZHVtcCBlYWNoIEpTT04gaW5wdXQg
ZmlsZSB1bm1vZGlmaWVkIGludG8gYW4gYXJyYXkgb2YgImRvbWFpbnMiLgotIyBWYWxpZGF0ZSBl
YWNoIGZpbGUgaXMgdmFsaWQgSlNPTiBhbmQgdGhhdCB0aGVyZSBpcyBhICJkb21haW4iIGtleS4K
LQotZmlyc3QgPSBUcnVlCi1wcmludCgie1wiZG9tYWluc1wiOlsiKQotZm9yIGZpbGUgaW4gZmls
ZXM6Ci0gICAgaWYgZmlyc3Q6Ci0gICAgICAgIGZpcnN0ID0gRmFsc2UKLSAgICBlbHNlOgotICAg
ICAgICBwcmludCgiLCIpCi0KLSAgICBzdHJpbmcgPSBvcGVuKGZpbGUpLnJlYWQoKQotCi0gICAg
dHJ5OgotICAgICAgICBkaWN0aW9uYXJ5ID0ganNvbi5sb2FkcyhzdHJpbmcpCi0gICAgICAgIGlm
IG5vdCAiZG9tYWluIiBpbiBkaWN0aW9uYXJ5OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCJGaWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWlucyBhIFwiZG9tYWluXCIga2V5LiIgJSBmaWxl
KQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGaWxl
IFwiJXNcIiBkb2VzIG5vdCBjb250YWluIHZhbGlkIEpTT046XG4iICUgZmlsZSkKLSAgICAgICAg
cmFpc2UKLQotICAgIHByaW50KHN0cmluZy5yc3RyaXAoKSkKLXByaW50KCJdfSIpCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5k
LW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2Ny
aXB0cy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggODkyMDBjODRlZTllNjZkMzFi
NmNhZWVjYjQ0NjgwNzEyZTczN2M2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvaW5s
aW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkKKysrIC9kZXYvbnVsbApA
QCAtMSw4MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSMgVGhpcyBzY3JpcHQgaW5saW5lcyBhbmQgbWluaWZp
ZXMgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIHNjcmlwdHMuCi0jICAtIDxsaW5rIGhyZWY9Ii4u
LiIgcmVsPSJzdHlsZXNoZWV0Ij4gPT4gPHN0eWxlPi4uLjwvc3R5bGU+Ci0jICAtIDxzY3JpcHQg
c3JjPSIuLi4iPiAgICAgICAgICAgICAgICAgPT4gPHNjcmlwdD4uLi48L3NjcmlwdD4KLQotaW1w
b3J0IGNzc21pbgotaW1wb3J0IGpzbWluCi1pbXBvcnQgb3MucGF0aAotaW1wb3J0IHJlCi1pbXBv
cnQgc3lzCi0KLQotZGVmIG1haW4oYXJndik6Ci0KLSAgICBpZiBsZW4oYXJndikgPCAyOgotICAg
ICAgICBwcmludCgndXNhZ2U6ICVzIGlucHV0RmlsZSBvdXRwdXRGaWxlJyAlIGFyZ3ZbMF0pCi0g
ICAgICAgIHJldHVybiAxCi0KLSAgICBpbnB1dEZpbGVOYW1lID0gYXJndlsxXQotICAgIG91dHB1
dEZpbGVOYW1lID0gYXJndlsyXQotICAgIGltcG9ydHNEaXIgPSBvcy5wYXRoLmRpcm5hbWUoaW5w
dXRGaWxlTmFtZSkKLQotICAgIGlucHV0RmlsZSA9IG9wZW4oaW5wdXRGaWxlTmFtZSwgJ3InKQot
ICAgIGlucHV0Q29udGVudCA9IGlucHV0RmlsZS5yZWFkKCkKLSAgICBpbnB1dEZpbGUuY2xvc2Uo
KQotCi0gICAgZGVmIGlubGluZShtYXRjaCwgbWluaWZpZXIsIHByZWZpeCwgcG9zdGZpeCk6Ci0g
ICAgICAgIGltcG9ydEZpbGVOYW1lID0gbWF0Y2guZ3JvdXAoMSkKLSAgICAgICAgZnVsbFBhdGgg
PSBvcy5wYXRoLmpvaW4oaW1wb3J0c0RpciwgaW1wb3J0RmlsZU5hbWUpCi0gICAgICAgIGlmIG5v
dCBvcy5hY2Nlc3MoZnVsbFBhdGgsIG9zLkZfT0spOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdGaWxlICVzIHJlZmVyZW5jZWQgaW4gJXMgbm90IGZvdW5kJyAlIChpbXBvcnRGaWxlTmFt
ZSwgaW5wdXRGaWxlTmFtZSkpCi0gICAgICAgIGltcG9ydEZpbGUgPSBvcGVuKGZ1bGxQYXRoLCAn
cicpCi0gICAgICAgIGltcG9ydENvbnRlbnQgPSBtaW5pZmllcihpbXBvcnRGaWxlLnJlYWQoKSkK
LSAgICAgICAgaW1wb3J0RmlsZS5jbG9zZSgpCi0gICAgICAgIHJldHVybiAnJXMlcyVzJyAlIChw
cmVmaXgsIGltcG9ydENvbnRlbnQsIHBvc3RmaXgpCi0KLSAgICBkZWYgaW5saW5lU3R5bGVzaGVl
dChtYXRjaCk6Ci0gICAgICAgIHJldHVybiBpbmxpbmUobWF0Y2gsIGNzc21pbi5jc3NtaW5pZnks
ICI8c3R5bGU+IiwgIjwvc3R5bGU+IikKLQotICAgIGRlZiBpbmxpbmVTY3JpcHQobWF0Y2gpOgot
ICAgICAgICByZXR1cm4gaW5saW5lKG1hdGNoLCBqc21pbi5qc21pbiwgIjxzY3JpcHQ+IiwgIjwv
c2NyaXB0PiIpCi0KLSAgICBvdXRwdXRDb250ZW50ID0gcmUuc3ViKHInPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPVtcJyJdKFteXCciXSspW1wnIl0+JywgaW5saW5lU3R5bGVzaGVldCwgaW5w
dXRDb250ZW50KQotICAgIG91dHB1dENvbnRlbnQgPSByZS5zdWIocic8c2NyaXB0IHNyYz1bXCci
XShbXlwnIl0rKVtcJyJdPjwvc2NyaXB0PicsIGlubGluZVNjcmlwdCwgb3V0cHV0Q29udGVudCkK
LQotICAgIG91dHB1dEZpbGUgPSBvcGVuKG91dHB1dEZpbGVOYW1lLCAndycpCi0gICAgb3V0cHV0
RmlsZS53cml0ZShvdXRwdXRDb250ZW50KQotICAgIG91dHB1dEZpbGUuY2xvc2UoKQotCi0gICAg
IyBUb3VjaCBvdXRwdXQgZmlsZSBkaXJlY3RvcnkgdG8gbWFrZSBzdXJlIHRoYXQgWGNvZGUgd2ls
bCBjb3B5Ci0gICAgIyBtb2RpZmllZCByZXNvdXJjZSBmaWxlcy4KLSAgICBpZiBzeXMucGxhdGZv
cm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgIG91dHB1dERpck5hbWUgPSBvcy5wYXRoLmRpcm5hbWUo
b3V0cHV0RmlsZU5hbWUpCi0gICAgICAgIG9zLnV0aW1lKG91dHB1dERpck5hbWUsIE5vbmUpCi0K
LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvanNt
aW4ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvanNtaW4ucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzZDJhNTBhYzk1ZDhhMGE3MDllNTNkZGRi
N2I4YTU1ZGZhYmEzY2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2pzbWluLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMjM4ICswLDAgQEAKLSMgVGhpcyBjb2RlIGlzIG9yaWdpbmFsIGZy
b20ganNtaW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQsIGl0IHdhcyB0cmFuc2xhdGVkIHRvCi0jIFB5
dGhvbiBieSBCYXJ1Y2ggRXZlbi4gSXQgd2FzIHJld3JpdHRlbiBieSBEYXZlIFN0Lkdlcm1haW4g
Zm9yIHNwZWVkLgotIwotIyBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKLSMKLSMgQ29weXJpZ2h0IChj
KSAyMDEzIERhdmUgU3QuR2VybWFpbgotIwotIyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Ci0jIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0byBkZWFsCi0jIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKLSMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bAotIyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgU29mdHdhcmUgaXMKLSMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9uczoKLSMKLSMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSMgYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0jCi0jIFRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF
WFBSRVNTIE9SCi0jIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotIyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSMgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF
UyBPUiBPVEhFUgotIyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAotIyBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCi0j
IFRIRSBTT0ZUV0FSRS4KLQotCi1pbXBvcnQgc3lzCi1pc18zID0gc3lzLnZlcnNpb25faW5mbyA+
PSAoMywgMCkKLWlmIGlzXzM6Ci0gICAgaW1wb3J0IGlvCi1lbHNlOgotICAgIGltcG9ydCBTdHJp
bmdJTwotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IGNTdHJpbmdJTwotICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICAgICAgY1N0cmluZ0lPID0gTm9uZQotCi0KLV9fYWxsX18gPSBbJ2pzbWlu
JywgJ0phdmFzY3JpcHRNaW5pZnknXQotX192ZXJzaW9uX18gPSAnMi4wLjknCi0KLQotZGVmIGpz
bWluKGpzKToKLSAgICAiIiIKLSAgICByZXR1cm5zIGEgbWluaWZpZWQgdmVyc2lvbiBvZiB0aGUg
amF2YXNjcmlwdCBzdHJpbmcKLSAgICAiIiIKLSAgICBpZiBub3QgaXNfMzoKLSAgICAgICAgaWYg
Y1N0cmluZ0lPIGFuZCBub3QgaXNpbnN0YW5jZShqcywgdW5pY29kZSk6Ci0gICAgICAgICAgICAj
IHN0cmluZ3MgY2FuIHVzZSBjU3RyaW5nSU8gZm9yIGEgM3ggcGVyZm9ybWFuY2UKLSAgICAgICAg
ICAgICMgaW1wcm92ZW1lbnQsIGJ1dCB1bmljb2RlIChpbiBweXRob24yKSBjYW5ub3QKLSAgICAg
ICAgICAgIGtsYXNzID0gY1N0cmluZ0lPLlN0cmluZ0lPCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBrbGFzcyA9IFN0cmluZ0lPLlN0cmluZ0lPCi0gICAgZWxzZToKLSAgICAgICAga2xhc3Mg
PSBpby5TdHJpbmdJTwotICAgIGlucyA9IGtsYXNzKGpzKQotICAgIG91dHMgPSBrbGFzcygpCi0g
ICAgSmF2YXNjcmlwdE1pbmlmeShpbnMsIG91dHMpLm1pbmlmeSgpCi0gICAgcmV0dXJuIG91dHMu
Z2V0dmFsdWUoKQotCi0KLWNsYXNzIEphdmFzY3JpcHRNaW5pZnkob2JqZWN0KToKLSAgICAiIiIK
LSAgICBNaW5pZnkgYW4gaW5wdXQgc3RyZWFtIG9mIGphdmFzY3JpcHQsIHdyaXRpbmcKLSAgICB0
byBhbiBvdXRwdXQgc3RyZWFtCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaW5z
dHJlYW09Tm9uZSwgb3V0c3RyZWFtPU5vbmUpOgotICAgICAgICBzZWxmLmlucyA9IGluc3RyZWFt
Ci0gICAgICAgIHNlbGYub3V0cyA9IG91dHN0cmVhbQotCi0gICAgZGVmIG1pbmlmeShzZWxmLCBp
bnN0cmVhbT1Ob25lLCBvdXRzdHJlYW09Tm9uZSk6Ci0gICAgICAgIGlmIGluc3RyZWFtIGFuZCBv
dXRzdHJlYW06Ci0gICAgICAgICAgICBzZWxmLmlucywgc2VsZi5vdXRzID0gaW5zdHJlYW0sIG91
dHN0cmVhbQotCi0gICAgICAgIHNlbGYuaXNfcmV0dXJuID0gRmFsc2UKLSAgICAgICAgc2VsZi5y
ZXR1cm5fYnVmID0gJycKLQotICAgICAgICBkZWYgd3JpdGUoY2hhcik6Ci0gICAgICAgICAgICAj
IGFsbCBvZiB0aGlzIGlzIHRvIHN1cHBvcnQgbGl0ZXJhbCByZWd1bGFyIGV4cHJlc3Npb25zLgot
ICAgICAgICAgICAgIyBzaWdoCi0gICAgICAgICAgICBpZiBjaGFyIGluICdyZXR1cm4nOgotICAg
ICAgICAgICAgICAgIHNlbGYucmV0dXJuX2J1ZiArPSBjaGFyCi0gICAgICAgICAgICAgICAgc2Vs
Zi5pc19yZXR1cm4gPSBzZWxmLnJldHVybl9idWYgPT0gJ3JldHVybicKLSAgICAgICAgICAgIHNl
bGYub3V0cy53cml0ZShjaGFyKQotICAgICAgICAgICAgaWYgc2VsZi5pc19yZXR1cm46Ci0gICAg
ICAgICAgICAgICAgc2VsZi5yZXR1cm5fYnVmID0gJycKLQotICAgICAgICByZWFkID0gc2VsZi5p
bnMucmVhZAotCi0gICAgICAgIHNwYWNlX3N0cmluZ3MgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiXAotICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5XyRc
XCIKLSAgICAgICAgc3RhcnRlcnMsIGVuZGVycyA9ICd7WygrLScsICd9XSkrLSJcJycKLSAgICAg
ICAgbmV3bGluZXN0YXJ0X3N0cmluZ3MgPSBzdGFydGVycyArIHNwYWNlX3N0cmluZ3MKLSAgICAg
ICAgbmV3bGluZWVuZF9zdHJpbmdzID0gZW5kZXJzICsgc3BhY2Vfc3RyaW5ncwotICAgICAgICBk
b19uZXdsaW5lID0gRmFsc2UKLSAgICAgICAgZG9fc3BhY2UgPSBGYWxzZQotICAgICAgICBlc2Nh
cGVfc2xhc2hfY291bnQgPSAwCi0gICAgICAgIGRvaW5nX3NpbmdsZV9jb21tZW50ID0gRmFsc2UK
LSAgICAgICAgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQgPSAnJwotICAgICAgICBkb2luZ19tdWx0
aV9jb21tZW50ID0gRmFsc2UKLSAgICAgICAgaW5fcmUgPSBGYWxzZQotICAgICAgICBpbl9xdW90
ZSA9ICcnCi0gICAgICAgIHF1b3RlX2J1ZiA9IFtdCi0KLSAgICAgICAgcHJldmlvdXMgPSByZWFk
KDEpCi0gICAgICAgIGlmIHByZXZpb3VzID09ICdcXCc6Ci0gICAgICAgICAgICBlc2NhcGVfc2xh
c2hfY291bnQgKz0gMQotICAgICAgICBuZXh0MSA9IHJlYWQoMSkKLSAgICAgICAgaWYgcHJldmlv
dXMgPT0gJy8nOgotICAgICAgICAgICAgaWYgbmV4dDEgPT0gJy8nOgotICAgICAgICAgICAgICAg
IGRvaW5nX3NpbmdsZV9jb21tZW50ID0gVHJ1ZQotICAgICAgICAgICAgZWxpZiBuZXh0MSA9PSAn
Kic6Ci0gICAgICAgICAgICAgICAgZG9pbmdfbXVsdGlfY29tbWVudCA9IFRydWUKLSAgICAgICAg
ICAgICAgICBwcmV2aW91cyA9IG5leHQxCi0gICAgICAgICAgICAgICAgbmV4dDEgPSByZWFkKDEp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHdyaXRlKHByZXZpb3VzKQotICAg
ICAgICBlbGlmIG5vdCBwcmV2aW91czoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBlbGlm
IHByZXZpb3VzID49ICchJzoKLSAgICAgICAgICAgIGlmIHByZXZpb3VzIGluICInXCIiOgotICAg
ICAgICAgICAgICAgIGluX3F1b3RlID0gcHJldmlvdXMKLSAgICAgICAgICAgIHdyaXRlKHByZXZp
b3VzKQotICAgICAgICAgICAgcHJldmlvdXNfbm9uX3NwYWNlID0gcHJldmlvdXMKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHByZXZpb3VzX25vbl9zcGFjZSA9ICcgJwotICAgICAgICBpZiBu
b3QgbmV4dDE6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICB3aGlsZSAxOgotICAgICAg
ICAgICAgbmV4dDIgPSByZWFkKDEpCi0gICAgICAgICAgICBpZiBub3QgbmV4dDI6Ci0gICAgICAg
ICAgICAgICAgbGFzdCA9IG5leHQxLnN0cmlwKCkKLSAgICAgICAgICAgICAgICBpZiBub3QgKGRv
aW5nX3NpbmdsZV9jb21tZW50IG9yIGRvaW5nX211bHRpX2NvbW1lbnQpXAotICAgICAgICAgICAg
ICAgICAgICBhbmQgbGFzdCBub3QgaW4gKCcnLCAnLycpOgotICAgICAgICAgICAgICAgICAgICBp
ZiBpbl9xdW90ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKCcnLmpvaW4ocXVvdGVf
YnVmKSkKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUobGFzdCkKLSAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAgICAgaWYgZG9pbmdfbXVsdGlfY29tbWVudDoKLSAgICAgICAgICAgICAg
ICBpZiBuZXh0MSA9PSAnKicgYW5kIG5leHQyID09ICcvJzoKLSAgICAgICAgICAgICAgICAgICAg
ZG9pbmdfbXVsdGlfY29tbWVudCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgICAgIG5leHQyID0g
cmVhZCgxKQotICAgICAgICAgICAgZWxpZiBkb2luZ19zaW5nbGVfY29tbWVudDoKLSAgICAgICAg
ICAgICAgICBpZiBuZXh0MSBpbiAnXHJcbic6Ci0gICAgICAgICAgICAgICAgICAgIGRvaW5nX3Np
bmdsZV9jb21tZW50ID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgbmV4dDIgaW4g
J1xyXG4nOgotICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiBub3QgbmV4dDI6Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgaWYgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQg
aW4gJyl9XSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb19uZXdsaW5lID0gVHJ1ZQotICAg
ICAgICAgICAgICAgICAgICBlbGlmIHByZXZpb3VzX2JlZm9yZV9jb21tZW50IGluIHNwYWNlX3N0
cmluZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSgnXG4nKQotICAgICAgICAgICAg
ZWxpZiBpbl9xdW90ZToKLSAgICAgICAgICAgICAgICBxdW90ZV9idWYuYXBwZW5kKG5leHQxKQot
Ci0gICAgICAgICAgICAgICAgaWYgbmV4dDEgPT0gaW5fcXVvdGU6Ci0gICAgICAgICAgICAgICAg
ICAgIG51bXNsYXNoZXMgPSAwCi0gICAgICAgICAgICAgICAgICAgIGZvciBjIGluIHJldmVyc2Vk
KHF1b3RlX2J1Zls6LTFdKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGMgIT0gJ1xcJzoK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1zbGFzaGVzICs9IDEKLSAg
ICAgICAgICAgICAgICAgICAgaWYgbnVtc2xhc2hlcyAlIDIgPT0gMDoKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGluX3F1b3RlID0gJycKLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKCcn
LmpvaW4ocXVvdGVfYnVmKSkKLSAgICAgICAgICAgIGVsaWYgbmV4dDEgaW4gJ1xyXG4nOgotICAg
ICAgICAgICAgICAgIGlmIHByZXZpb3VzX25vbl9zcGFjZSBpbiBuZXdsaW5lZW5kX3N0cmluZ3Mg
XAotICAgICAgICAgICAgICAgICAgICBvciBwcmV2aW91c19ub25fc3BhY2UgPiAnfic6Ci0gICAg
ICAgICAgICAgICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBuZXh0
MiA8ICchJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0MiA9IHJlYWQoMSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgbmV4dDI6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5leHQyIGluIG5ld2xpbmVzdGFydF9zdHJpbmdz
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgbmV4dDIgPiAnficgb3IgbmV4
dDIgPT0gJy8nOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb19uZXdsaW5lID0g
VHJ1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBlbGlm
IG5leHQxIDwgJyEnIGFuZCBub3QgaW5fcmU6Ci0gICAgICAgICAgICAgICAgaWYgKHByZXZpb3Vz
X25vbl9zcGFjZSBpbiBzcGFjZV9zdHJpbmdzIFwKLSAgICAgICAgICAgICAgICAgICAgb3IgcHJl
dmlvdXNfbm9uX3NwYWNlID4gJ34nKSBcCi0gICAgICAgICAgICAgICAgICAgIGFuZCAobmV4dDIg
aW4gc3BhY2Vfc3RyaW5ncyBvciBuZXh0MiA+ICd+Jyk6Ci0gICAgICAgICAgICAgICAgICAgIGRv
X3NwYWNlID0gVHJ1ZQotICAgICAgICAgICAgICAgIGVsaWYgcHJldmlvdXNfbm9uX3NwYWNlIGlu
ICctKycgYW5kIG5leHQyID09IHByZXZpb3VzX25vbl9zcGFjZToKLSAgICAgICAgICAgICAgICAg
ICAgIyBwcm90ZWN0IGFnYWluc3QgKyArKyBvciAtIC0tIHNlcXVlbmNlcwotICAgICAgICAgICAg
ICAgICAgICBkb19zcGFjZSA9IFRydWUKLSAgICAgICAgICAgICAgICBlbGlmIHNlbGYuaXNfcmV0
dXJuIGFuZCBuZXh0MiA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgICAgICMgcmV0dXJuaW5nIGEg
cmVnZXguLi4KLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQotICAgICAgICAgICAgZWxp
ZiBuZXh0MSA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgaWYgZG9fc3BhY2U6Ci0gICAgICAgICAg
ICAgICAgICAgIHdyaXRlKCcgJykKLSAgICAgICAgICAgICAgICBpZiBpbl9yZToKLSAgICAgICAg
ICAgICAgICAgICAgaWYgcHJldmlvdXMgIT0gJ1xcJyBvciAobm90IGVzY2FwZV9zbGFzaF9jb3Vu
dCAlIDIpIG9yIG5leHQyIGluICdnaW15JzoKLSAgICAgICAgICAgICAgICAgICAgICAgIGluX3Jl
ID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJy8nKQotICAgICAgICAgICAgICAg
IGVsaWYgbmV4dDIgPT0gJy8nOgotICAgICAgICAgICAgICAgICAgICBkb2luZ19zaW5nbGVfY29t
bWVudCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQg
PSBwcmV2aW91c19ub25fc3BhY2UKLSAgICAgICAgICAgICAgICBlbGlmIG5leHQyID09ICcqJzoK
LSAgICAgICAgICAgICAgICAgICAgZG9pbmdfbXVsdGlfY29tbWVudCA9IFRydWUKLSAgICAgICAg
ICAgICAgICAgICAgcHJldmlvdXMgPSBuZXh0MQotICAgICAgICAgICAgICAgICAgICBuZXh0MSA9
IG5leHQyCi0gICAgICAgICAgICAgICAgICAgIG5leHQyID0gcmVhZCgxKQotICAgICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGluX3JlID0gcHJldmlvdXNfbm9uX3NwYWNl
IGluICcoLD06Wz8hJnwnIG9yIHNlbGYuaXNfcmV0dXJuICAjIGxpdGVyYWwgcmVndWxhciBleHBy
ZXNzaW9uCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlKCcvJykKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgaWYgZG9fc3BhY2U6Ci0gICAgICAgICAgICAgICAgICAgIGRvX3Nw
YWNlID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQotICAgICAgICAgICAg
ICAgIGlmIGRvX25ld2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlKCdcbicpCi0gICAg
ICAgICAgICAgICAgICAgIGRvX25ld2xpbmUgPSBGYWxzZQotCi0gICAgICAgICAgICAgICAgd3Jp
dGUobmV4dDEpCi0gICAgICAgICAgICAgICAgaWYgbm90IGluX3JlIGFuZCBuZXh0MSBpbiAiJ1wi
IjoKLSAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGUgPSBuZXh0MQotICAgICAgICAgICAgICAg
ICAgICBxdW90ZV9idWYgPSBbXQotCi0gICAgICAgICAgICBwcmV2aW91cyA9IG5leHQxCi0gICAg
ICAgICAgICBuZXh0MSA9IG5leHQyCi0KLSAgICAgICAgICAgIGlmIHByZXZpb3VzID49ICchJzoK
LSAgICAgICAgICAgICAgICBwcmV2aW91c19ub25fc3BhY2UgPSBwcmV2aW91cwotCi0gICAgICAg
ICAgICBpZiBwcmV2aW91cyA9PSAnXFwnOgotICAgICAgICAgICAgICAgIGVzY2FwZV9zbGFzaF9j
b3VudCArPSAxCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGVzY2FwZV9zbGFz
aF9jb3VudCA9IDAKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBtaW5pZmllciA9
IEphdmFzY3JpcHRNaW5pZnkoc3lzLnN0ZGluLCBzeXMuc3Rkb3V0KQotICAgIG1pbmlmaWVyLm1p
bmlmeSgpCi0gICAgc3lzLnN0ZG91dC53cml0ZSgnXG4nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy94eGQucGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDVlZTA4YTUyZDhlNjZjZmRhM2MwODNmN2FkYjE1Zjk2YzA4YTliMGMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAK
LSMhIC91c3IvYmluL3BlcmwKLQotIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICMgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAjIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgIyBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMKLQotJHZhcm5hbWUgPSBz
aGlmdDsKLSRmbmFtZSA9IHNoaWZ0OwotJG91dHB1dCA9IHNoaWZ0OwotCi1vcGVuKCRpbnB1dCwg
JzwnLCAkZm5hbWUpIG9yIGRpZSAiQ2FuJ3Qgb3BlbiBmaWxlIGZvciByZWFkOiAkZm5hbWUgJCEi
OwotJC8gPSB1bmRlZjsKLSR0ZXh0ID0gPCRpbnB1dD47Ci1jbG9zZSgkaW5wdXQpOwotCi0kdGV4
dCA9IGpvaW4oJywgJywgbWFwKCcweCcgLiB1bnBhY2soIkgqIiwgJF8pLCBzcGxpdCh1bmRlZiwg
JHRleHQpKSk7Ci0KLW9wZW4oJG91dHB1dCwgJz4nLCAkb3V0cHV0KSBvciBkaWUgIkNhbid0IG9w
ZW4gZmlsZSBmb3Igd3JpdGU6ICRvdXRwdXQgJCEiOwotcHJpbnQgJG91dHB1dCAiY29uc3QgdW5z
aWduZWQgY2hhciAkdmFybmFtZVxbXF0gPSB7XG4kdGV4dFxufTtcbiI7Ci1jbG9zZSgkb3V0cHV0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTY3N2MxYWYzZjM5ZDViMGNkZTlmMzcyNWNlNWUz
OTJhNDU5ZWU2ZS4uZGY4NjUwZWNhNDE2Njg1MDQ0MDBjOWExNTkxYjlhNDhmOGQ3MDhkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTgyMCwxNSArODIwLDEyIEBAIHNldChXZWJDb3JlX0lETF9G
SUxFUwogCiBpZiAoV0lOMzIpCiAgICAgaWYgKElOVEVSTkFMX0JVSUxEKQotICAgICAgICBzZXQo
V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vLi4vaW5j
bHVkZS9wcml2YXRlL0phdmFTY3JpcHRDb3JlIikKLSAgICAgICAgc2V0KFdlYkNvcmVfR0VORVJB
VEVfSlNfQlVJTFRJTlNfU0NSSVBUU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vLi4vaW5jbHVk
ZS9wcml2YXRlL0phdmFTY3JpcHRDb3JlIikKKyAgICAgICAgc2V0KEphdmFTY3JpcHRDb3JlX1ND
UklQVFNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9Ly4uL2luY2x1ZGUvcHJpdmF0ZS9KYXZhU2Ny
aXB0Q29yZSIpCiAgICAgZWxzZSAoKQotICAgICAgICBzZXQoV2ViQ29yZV9JTlNQRUNUT1JfU0NS
SVBUU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3Ivc2NyaXB0cyIpCi0gICAg
ICAgIHNldChXZWJDb3JlX0dFTkVSQVRFX0pTX0JVSUxUSU5TX1NDUklQVFNfRElSICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0iKQorICAgICAgICBzZXQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIg
IiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cyIpCiAgICAgZW5kaWYgKCkKIGVsc2UgKCkKLSAgICBzZXQoV2ViQ29yZV9JTlNQRUNU
T1JfU0NSSVBUU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3Ivc2NyaXB0cyIp
Ci0gICAgc2V0KFdlYkNvcmVfR0VORVJBVEVfSlNfQlVJTFRJTlNfU0NSSVBUU19ESVIgIiR7SkFW
QVNDUklQVENPUkVfRElSfSIpCisgICAgc2V0KEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSICIk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vU2NyaXB0cyIpCiBlbmRpZiAoKQogCiBzZXQoV2ViQ29yZV9T
T1VSQ0VTCkBAIC0zMzcwLDEwICszMzY3LDEwIEBAIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxF
U19JRl9FWElTVFMoKQogYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIE9VVFBVVCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaCAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY29tYmluZWQuaHRtbAogICAg
IE1BSU5fREVQRU5ERU5DWSBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbAotICAg
IERFUEVORFMgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBsICR7V2ViQ29y
ZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFu
ZC1zY3JpcHRzLnB5CisgICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS94
eGQucGwgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vaW5saW5lLWFuZC1taW5pZnktc3R5
bGVzaGVldHMtYW5kLXNjcmlwdHMucHkKICAgICBERVBFTkRTIGluc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5UGFnZS5jc3MgaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzCi0gICAgQ09N
TUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElS
fS9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAke1dFQkNPUkVf
RElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY29tYmluZWQuaHRtbAotICAgIENP
TU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9
L3h4ZC5wbCBJbnNwZWN0b3JPdmVybGF5UGFnZV9odG1sICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1sICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5oCisgICAgQ09NTUFORCAke1BZ
VEhPTl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9pbmxpbmUtYW5k
LW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAke1dFQkNPUkVfRElSfS9pbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY29tYmluZWQuaHRtbAorICAgIENPTU1BTkQgJHtQRVJM
X0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L3h4ZC5wbCBJbnNwZWN0
b3JPdmVybGF5UGFnZV9odG1sICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0
b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1sICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9JbnNwZWN0b3JPdmVybGF5UGFnZS5oCiAgICAgVkVSQkFUSU0pCiBsaXN0KEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3Rvck92ZXJs
YXlQYWdlLmgpCiAKQEAgLTMzODIsMTAgKzMzNzksMTAgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFn
ZS4KIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmggJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcwogICAgIE1BSU5f
REVQRU5ERU5DWSBpbnNwZWN0b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMKLSAgICBE
RVBFTkRTICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L3h4ZC5wbCAke1dlYkNvcmVf
SU5TUEVDVE9SX1NDUklQVFNfRElSfS9qc21pbi5weQorICAgIERFUEVORFMgJHtKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2pz
bWluLnB5CiAgICAgQ09NTUFORCBlY2hvICIvLyMgc291cmNlVVJMPV9fV2ViSW5zcGVjdG9yQ29t
bWFuZExpbmVBUElNb2R1bGVTb3VyY2VfXyIgPiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWluLmpzCi0gICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS9qc21pbi5weSA8
ICR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5qcyA+
PiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3Vy
Y2UubWluLmpzCi0gICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BF
Q1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBsIENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlX2pzICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5t
aW4uanMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxl
U291cmNlLmgKKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVJ9L2pzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL0NvbW1h
bmRMaW5lQVBJTW9kdWxlU291cmNlLmpzID4+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4uanMKKyAgICBDT01NQU5EICR7UEVSTF9F
WEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS94eGQucGwgQ29tbWFuZExp
bmVBUElNb2R1bGVTb3VyY2VfanMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbW1h
bmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaAogICAgIFZFUkJBVElNKQogbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Db21tYW5k
TGluZUFQSU1vZHVsZVNvdXJjZS5oKQogCkBAIC0zMzk4LDkgKzMzOTUsOSBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbG9yRGF0
YS5jcHApCiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9YTUxWaWV3ZXJDU1MuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vWE1MVmlld2VyLm1pbi5jc3MKICAgICBNQUlOX0RFUEVOREVOQ1kgeG1sL1hNTFZpZXdlci5j
c3MKLSAgICBERVBFTkRTICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L3h4ZC5wbCAk
e1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS9jc3NtaW4ucHkKLSAgICBDT01NQU5EICR7
UFlUSE9OX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2Nzc21p
bi5weSA8ICR7V0VCQ09SRV9ESVJ9L3htbC9YTUxWaWV3ZXIuY3NzID4gJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlci5taW4uY3NzCi0gICAgQ09NTUFORCAke1BFUkxfRVhF
Q1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBsIFhNTFZpZXdl
cl9jc3MgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlci5taW4uY3NzICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXJDU1MuaAorICAgIERFUEVORFMg
JHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsICR7SmF2YVNjcmlwdENvcmVfU0NS
SVBUU19ESVJ9L2Nzc21pbi5weQorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vY3NzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0veG1s
L1hNTFZpZXdlci5jc3MgPiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2Vy
Lm1pbi5jc3MKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSfS94eGQucGwgWE1MVmlld2VyX2NzcyAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vWE1MVmlld2VyLm1pbi5jc3MgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
L1hNTFZpZXdlckNTUy5oCiAgICAgVkVSQkFUSU0pCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlckNTUy5oKQogCkBAIC0z
NDA5LDkgKzM0MDYsOSBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlckNTUy5oKQogYWRkX2N1c3RvbV9jb21tYW5kKAog
ICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VySlMuaCAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyLm1pbi5qcwogICAgIE1BSU5f
REVQRU5ERU5DWSB4bWwvWE1MVmlld2VyLmpzCi0gICAgREVQRU5EUyAke1dlYkNvcmVfSU5TUEVD
VE9SX1NDUklQVFNfRElSfS94eGQucGwgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0v
anNtaW4ucHkKLSAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQ
RUNUT1JfU0NSSVBUU19ESVJ9L2pzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0veG1sL1hNTFZpZXdl
ci5qcyA+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmpzCi0g
ICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRT
X0RJUn0veHhkLnBsIFhNTFZpZXdlcl9qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0v
WE1MVmlld2VyLm1pbi5qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2Vy
SlMuaAorICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsICR7
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2pzbWluLnB5CisgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9qc21pbi5weSA8ICR7
V0VCQ09SRV9ESVJ9L3htbC9YTUxWaWV3ZXIuanMgPiAke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0vWE1MVmlld2VyLm1pbi5qcworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L3h4ZC5wbCBYTUxWaWV3ZXJfanMgJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlci5taW4uanMgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L1hNTFZpZXdlckpTLmgKICAgICBWRVJCQVRJTSkKIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VySlMu
aCkKIApAQCAtMzUwMSw3ICszNDk4LDcgQEAgaWYgKFdlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRT
KQogICAgICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1VzZXJBZ2Vu
dFNjcmlwdHNEYXRhLmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vVXNlckFnZW50
U2NyaXB0cy5oCiAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke1dFQkNPUkVfRElSfS9TY3JpcHRz
L21ha2UtanMtZmlsZS1hcnJheXMucHkKICAgICAgICAgREVQRU5EUyAke1dlYkNvcmVfVVNFUl9B
R0VOVF9TQ1JJUFRTfQotICAgICAgICBDT01NQU5EICJQWVRIT05QQVRIPSR7V2ViQ29yZV9JTlNQ
RUNUT1JfU0NSSVBUU19ESVJ9IiAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9T
Y3JpcHRzL21ha2UtanMtZmlsZS1hcnJheXMucHkgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L1VzZXJBZ2VudFNjcmlwdHMuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vVXNl
ckFnZW50U2NyaXB0c0RhdGEuY3BwICR7V2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFN9CisgICAg
ICAgIENPTU1BTkQgIlBZVEhPTlBBVEg9JHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0iICR7
UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvbWFrZS1qcy1maWxlLWFy
cmF5cy5weSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vVXNlckFnZW50U2NyaXB0cy5o
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Vc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHAg
JHtXZWJDb3JlX1VTRVJfQUdFTlRfU0NSSVBUU30KICAgICAgICAgVkVSQkFUSU0pCiAgICAgbGlz
dChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9V
c2VyQWdlbnRTY3JpcHRzRGF0YS5jcHApCiAgICAgQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURf
REVQRU5ERU5DSUVTKCR7V2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFNfREVQRU5ERU5DSUVTfSBV
c2VyQWdlbnRTY3JpcHRzRGF0YS5jcHAgVXNlckFnZW50U2NyaXB0cy5oKQpAQCAtMzU5Myw5ICsz
NTkwLDkgQEAgZm9yZWFjaCAoX2J1aWx0aW5qcyAke1dFQkNPUkVfSlNfQlVJTFRJTlN9KQogICAg
IGFkZF9jdXN0b21fY29tbWFuZCgKICAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zV3JhcHBlci5oICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9LyR7X25hbWV9QnVpbHRpbnMuY3BwCiAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke1dFQkNP
UkVfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucwotICAgICAgICBERVBFTkRTICR7V2ViQ29yZV9H
RU5FUkFURV9KU19CVUlMVElOU19TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAg
ICAgICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1qcy1i
dWlsdGlucwogICAgICAgICBERVBFTkRTICR7X2J1aWx0aW5qc30KLSAgICAgICAgQ09NTUFORCAk
e1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUt
anMtYnVpbHRpbnMgLS1pbnB1dCAke19idWlsdGluanN9IC0tb3V0cHV0X2RpciAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0gLS1nZW5lcmF0ZV9qc19idWlsdGluc19wYXRoICR7V2ViQ29y
ZV9HRU5FUkFURV9KU19CVUlMVElOU19TQ1JJUFRTX0RJUn0KKyAgICAgICAgQ09NTUFORCAke1BZ
VEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMt
YnVpbHRpbnMgLS1pbnB1dCAke19idWlsdGluanN9IC0tb3V0cHV0X2RpciAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0gLS1nZW5lcmF0ZV9qc19idWlsdGluc19wYXRoICR7SmF2YVNjcmlw
dENvcmVfU0NSSVBUU19ESVJ9CiAgICAgICAgIFZFUkJBVElNKQogICAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtf
bmFtZX1CdWlsdGlucy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0NjY1NGYy
YWQzMTg4OWRiMzQyNTdiZmQ4YzhmYWM5M2UyZGYwNGI1Li4wYmFlOTBhZWRkMDVjZTU4ZWVkNjli
YTdlMDU3NTA1NDFmMzlmYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTg5
Niw4ICs4OTYsOCBAQCBTZWxlY3RvclBzZXVkb0VsZW1lbnRUeXBlTWFwLmNwcCA6ICQoV2ViQ29y
ZSkvY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLgogYWxsIDogWE1MVmlld2VyQ1NT
LmgKIAogWE1MVmlld2VyQ1NTLmggOiB4bWwvWE1MVmlld2VyLmNzcwotCSQoUFlUSE9OKSAkKElu
c3BlY3RvclNjcmlwdHMpL2Nzc21pbi5weSA8IiQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci5jc3Mi
ID4gLi9YTUxWaWV3ZXIubWluLmNzcwotCSQoUEVSTCkgJChJbnNwZWN0b3JTY3JpcHRzKS94eGQu
cGwgWE1MVmlld2VyX2NzcyAuL1hNTFZpZXdlci5taW4uY3NzIFhNTFZpZXdlckNTUy5oCisJJChQ
WVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2Nzc21pbi5weSA8IiQoV2ViQ29y
ZSkveG1sL1hNTFZpZXdlci5jc3MiID4gLi9YTUxWaWV3ZXIubWluLmNzcworCSQoUEVSTCkgJChK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikveHhkLnBsIFhNTFZpZXdlcl9jc3MgLi9YTUxWaWV3
ZXIubWluLmNzcyBYTUxWaWV3ZXJDU1MuaAogCSQoREVMRVRFKSBYTUxWaWV3ZXIubWluLmNzcwog
CiAjIC0tLS0tLS0tCkBAIC05MDcsOCArOTA3LDggQEAgWE1MVmlld2VyQ1NTLmggOiB4bWwvWE1M
Vmlld2VyLmNzcwogYWxsIDogWE1MVmlld2VySlMuaAogCiBYTUxWaWV3ZXJKUy5oIDogeG1sL1hN
TFZpZXdlci5qcwotCSQoUFlUSE9OKSAkKEluc3BlY3RvclNjcmlwdHMpL2pzbWluLnB5IDwiJChX
ZWJDb3JlKS94bWwvWE1MVmlld2VyLmpzIiA+IC4vWE1MVmlld2VyLm1pbi5qcwotCSQoUEVSTCkg
JChJbnNwZWN0b3JTY3JpcHRzKS94eGQucGwgWE1MVmlld2VyX2pzIC4vWE1MVmlld2VyLm1pbi5q
cyBYTUxWaWV3ZXJKUy5oCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIp
L2pzbWluLnB5IDwiJChXZWJDb3JlKS94bWwvWE1MVmlld2VyLmpzIiA+IC4vWE1MVmlld2VyLm1p
bi5qcworCSQoUEVSTCkgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikveHhkLnBsIFhNTFZp
ZXdlcl9qcyAuL1hNTFZpZXdlci5taW4uanMgWE1MVmlld2VySlMuaAogCSQoREVMRVRFKSBYTUxW
aWV3ZXIubWluLmpzCiAKICMgLS0tLS0tLS0KQEAgLTEwMDIsNyArMTAwMiw3IEBAIGlmZGVmIFVT
RVJfQUdFTlRfU0NSSVBUUwogYWxsIDogVXNlckFnZW50U2NyaXB0cy5oCiAKIFVzZXJBZ2VudFNj
cmlwdHMuaCA6IFNjcmlwdHMvbWFrZS1qcy1maWxlLWFycmF5cy5weSAkKFVTRVJfQUdFTlRfU0NS
SVBUUykKLQlQWVRIT05QQVRIPSQoSW5zcGVjdG9yU2NyaXB0cykgJChQWVRIT04pICQ8ICRAIFVz
ZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCAkKFVTRVJfQUdFTlRfU0NSSVBUUykKKwlQWVRIT05QQVRI
PSQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpICQoUFlUSE9OKSAkPCAkQCBVc2VyQWdlbnRT
Y3JpcHRzRGF0YS5jcHAgJChVU0VSX0FHRU5UX1NDUklQVFMpCiBlbmRpZgogCiAjIC0tLS0tLS0t
CkBAIC0xMjE4LDE2ICsxMjE4LDE2IEBAIEpTJS5oIDogJS5pZGwgJChKU19CSU5ESU5HU19TQ1JJ
UFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoV0lORE9XX0NPTlNUUlVDVE9SCiBhbGwgOiBJ
bnNwZWN0b3JPdmVybGF5UGFnZS5oCiAKIEluc3BlY3Rvck92ZXJsYXlQYWdlLmggOiBJbnNwZWN0
b3JPdmVybGF5UGFnZS5odG1sIEluc3BlY3Rvck92ZXJsYXlQYWdlLmNzcyBJbnNwZWN0b3JPdmVy
bGF5UGFnZS5qcwotCSQoUFlUSE9OKSAkKEluc3BlY3RvclNjcmlwdHMpL2lubGluZS1hbmQtbWlu
aWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICQoV2ViQ29yZSkvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXlQYWdlLmh0bWwgLi9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1s
Ci0JJChQRVJMKSAkKEluc3BlY3RvclNjcmlwdHMpL3h4ZC5wbCBJbnNwZWN0b3JPdmVybGF5UGFn
ZV9odG1sIC4vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY29tYmluZWQuaHRtbCBJbnNwZWN0b3JPdmVy
bGF5UGFnZS5oCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2lubGlu
ZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICQoV2ViQ29yZSkvaW5zcGVj
dG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmh0bWwgLi9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21i
aW5lZC5odG1sCisJJChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwg
SW5zcGVjdG9yT3ZlcmxheVBhZ2VfaHRtbCAuL0luc3BlY3Rvck92ZXJsYXlQYWdlLmNvbWJpbmVk
Lmh0bWwgSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaAogCSQoREVMRVRFKSBJbnNwZWN0b3JPdmVybGF5
UGFnZS5jb21iaW5lZC5odG1sCiAKIGFsbCA6IENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmgK
IAogQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaCA6IENvbW1hbmRMaW5lQVBJTW9kdWxlU291
cmNlLmpzCiAJZWNobyAiLy8jIHNvdXJjZVVSTD1fX1dlYkluc3BlY3RvckNvbW1hbmRMaW5lQVBJ
TW9kdWxlU291cmNlX18iID4gLi9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4uanMKLQkk
KFBZVEhPTikgJChJbnNwZWN0b3JTY3JpcHRzKS9qc21pbi5weSA8JChXZWJDb3JlKS9pbnNwZWN0
b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMgPj4gLi9Db21tYW5kTGluZUFQSU1vZHVs
ZVNvdXJjZS5taW4uanMKLQkkKFBFUkwpICQoSW5zcGVjdG9yU2NyaXB0cykveHhkLnBsIENvbW1h
bmRMaW5lQVBJTW9kdWxlU291cmNlX2pzIC4vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWlu
LmpzIENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUikvanNtaW4ucHkgPCQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvbW1hbmRM
aW5lQVBJTW9kdWxlU291cmNlLmpzID4+IC4vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWlu
LmpzCisJJChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwgQ29tbWFu
ZExpbmVBUElNb2R1bGVTb3VyY2VfanMgLi9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4u
anMgQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaAogCSQoREVMRVRFKSBDb21tYW5kTGluZUFQ
SU1vZHVsZVNvdXJjZS5taW4uanMKIAogIyBXZWIgUmVwbGF5IGlucHV0cyBnZW5lcmF0b3IKQEAg
LTEyNjMsNyArMTI2Myw3IEBAIFdFQkNPUkVfSlNfQlVJTFRJTlMgPSBcCiBhbGwgOiAkKFdFQkNP
UkVfSlNfQlVJTFRJTlM6JS5qcz0lQnVpbHRpbnMuY3BwKQogCiAlQnVpbHRpbnMuY3BwOiAlLmpz
Ci0JJChQWVRIT04pICQoV2ViQ29yZSkvZ2VuZXJhdGUtanMtYnVpbHRpbnMgLS1pbnB1dCAkPCAt
LWdlbmVyYXRlX2pzX2J1aWx0aW5zX3BhdGggJChHZW5lcmF0ZUpTQnVpbHRpbnNTY3JpcHRzKQor
CSQoUFlUSE9OKSAkKFdlYkNvcmUpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQgJDwgLS1n
ZW5lcmF0ZV9qc19idWlsdGluc19wYXRoICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpCiAK
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MzFmZGEwMTBmNTc2N2JjNTM0Y2Vj
M2VlNmI4OGZhODU2MTE1ODYzLi41NTk1N2MxYzk3MzhmZDUzYjhkOTk4MDc0YzQyZGM2YTI3ZTBm
ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yODE2OCw3ICsyODE2OCw3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hl
bGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZVwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdlYkNvcmVcbmV4cG9ydCBX
ZWJDb3JlPVwiV2ViQ29yZVwiXG5leHBvcnQgSW5zcGVjdG9yU2NyaXB0cz1cIiR7SkFWQVNDUklQ
VENPUkVfUFJJVkFURV9IRUFERVJTX0RJUn1cIlxuZXhwb3J0IFdlYlJlcGxheVNjcmlwdHM9XCIk
e0pBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJ9XCJcbmV4cG9ydCBHZW5lcmF0ZUpT
QnVpbHRpbnNTY3JpcHRzPVwiJHtKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSfVwi
XG5cbmlmIFsgISAkQ0MgXTsgdGhlblxuICAgIGV4cG9ydCBDQz1cImB4Y3J1biAtZmluZCBjbGFu
Z2BcIlxuZmlcblxuaWYgWyAhICRHUEVSRiBdOyB0aGVuXG4gICAgZXhwb3J0IEdQRVJGPVwiYHhj
cnVuIC1maW5kIGdwZXJmYFwiXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIg
LW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3Rh
bGxoZHJzXCIgXTsgdGhlblxuICAgIG1ha2UgIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2
ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmlcbiI7CisJCQlzaGVsbFNjcmlwdCA9ICJt
a2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlXCJc
bmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmVcIlxuXG4v
YmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV2ViQ29yZVxuZXhwb3J0IFdlYkNvcmU9XCJXZWJD
b3JlXCJcbmV4cG9ydCBKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUj1cIiR7SkFWQVNDUklQVENP
UkVfUFJJVkFURV9IRUFERVJTX0RJUn1cIlxuZXhwb3J0IFdlYlJlcGxheVNjcmlwdHM9XCIke0pB
VkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJ9XCJcblxuaWYgWyAhICRDQyBdOyB0aGVu
XG4gICAgZXhwb3J0IENDPVwiYHhjcnVuIC1maW5kIGNsYW5nYFwiXG5maVxuXG5pZiBbICEgJEdQ
RVJGIF07IHRoZW5cbiAgICBleHBvcnQgR1BFUkY9XCJgeGNydW4gLWZpbmQgZ3BlcmZgXCJcbmZp
XG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJp
bnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiBdOyB0aGVuXG4gICAg
bWFrZSAgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
XCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtS
T09UfVwiXG5maVxuIjsKIAkJfTsKIC8qIEVuZCBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2Vj
dGlvbiAqLwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263330</attachid>
            <date>2015-10-16 14:20:45 -0700</date>
            <delta_ts>2015-10-16 16:27:52 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-150245-20151016142006.patch</filename>
            <type>text/plain</type>
            <size>127177</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YjQ1OGYwYmIzN2YzZTg4MmVkMTNiNWQ2NTkzZmE0NTM2OTE3NDQyLi4zY2UwNWE2MGMzNmFkZmEw
YmY4NjI3OTZkMDEyMWQ3MmNiZDQ3NmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0xMC0xNiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVbmlmeSBoYW5kbGluZyBvZiBKYXZhU2NyaXB0Q29yZSBzY3JpcHRzIHRoYXQgYXJl
IHVzZWQgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUwMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSBhbGwgc3RhbmRhbG9uZSBKYXZhU2NyaXB0Q29yZSBzY3JpcHRzIHRoYXQg
YXJlIHVzZWQgYnkgV2ViQ29yZSBpbnRvIHRoZQorICAgICAgICBKYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzIGRpcmVjdG9yeS4gVXNlIEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSIHRvIHJlZmVyCisg
ICAgICAgIHRvIHRoZSBwYXRoIGZvciB0aGVzZSBzY3JpcHRzLgorCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKworICAgICAgICAgICAgRGVmaW5lIGFuZCB1c2UgSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICAgICBNYWtlIGEgbmV3IGdyb3VwIGluIHRoZSBYY29k
ZSBwcm9qZWN0IGFuZCBjbGVhbiB1cCByZWZlcmVuY2VzLgorCisgICAgICAgICogUGxhdGZvcm1X
aW4uY21ha2U6CisKKyAgICAgICAgICAgIEZvciBXaW5kb3dzLCBjb3B5IHRoZXNlIHNjcmlwdHMg
b3ZlciB0byBGb3J3YXJkaW5nSGVhZGVycy9TY3JpcHRzIHNpbmNlIHRoZXkKKyAgICAgICAgICAg
IGNhbm5vdCBiZSB1c2VkIGRpcmVjdGx5IGZyb20gSkFWQVNDUklQVENPUkVfRElSIGluIEFwcGxl
V2luIGJ1aWxkcy4gRG8gdGhlIHNhbWUKKyAgICAgICAgICAgIHRoaW5nIGZvciBib3RoIFdpbmRv
d3MgdmFyaWFudHMgdG8gYmUgY29uc2lzdGVudCBhYm91dCBpdC4KKworICAgICAgICAqIFNjcmlw
dHMvY3NzbWluLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2Nzc21pbi5weS4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVk
LWluc3BlY3Rvci1qc29uLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5LgorICAg
ICAgICAqIFNjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnM6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMuCisgICAgICAgICogU2NyaXB0cy9p
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weTogUmVuYW1lZCBmcm9t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlm
eS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weS4KKyAgICAgICAgKiBTY3JpcHRzL2pzbWluLnB5
OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2pz
bWluLnB5LgorICAgICAgICAqIFNjcmlwdHMveHhkLnBsOiBSZW5hbWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbC4KKwogMjAxNS0xMC0xNiAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBp
c3N1ZXMgd2l0aCBUeXBlZEFycmF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg5NzBhNjM5YmIzMjQ3ZDJkYTcz
ZDNhNjg0MGEwZjI5MjNkYjE4YmEuLjEzYWJhODhlMGMwNTFlNjFlMDljZWRlZWI3OGQ2ZjhiNjI5
YjRlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0xMC0xNiAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbmlmeSBoYW5kbGluZyBvZiBKYXZhU2Ny
aXB0Q29yZSBzY3JpcHRzIHRoYXQgYXJlIHVzZWQgaW4gV2ViQ29yZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMjQ1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIgdmFyaWFibGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAgICAgTm8gbmVlZCB0byBleHBvcnQgb3RoZXIg
dmFyaWFibGVzIGxpa2UgSW5zcGVjdG9yU2NyaXB0cyBhbnltb3JlLgorCiAyMDE1LTEwLTE2ICBL
ZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgdmFsdWUgc2Fu
aXRpemF0aW9uIGFsZ29yaXRobSBmb3IgaW5wdXRbdHlwZT11cmxdIHNob3VsZCBzdHJpcCB3aGl0
ZXNwYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJjMDFkYzhiMGQy
ZjE0NjMyZjFkYjM0MjI4ZDZjZjEwNzVkYmFiZmQuLjUyMmNhZGJkODkwMWRkNjI1MTYzYjk1Mzdj
ZWE1Zjc4ZTRiYzlhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTY5
OSw2ICs2OTksOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfTFVUX0ZJTEVTCiAgICAgcnVudGltZS9T
eW1ib2xQcm90b3R5cGUuY3BwCiApCiAKK3NldChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUiAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L1NjcmlwdHMiKQorCiBzZXQoSmF2YVNjcmlwdENvcmVfTElC
UkFSSUVTCiAgICAgV1RGJHtERUJVR19TVUZGSVh9CiAgICAgJHtJQ1VfSTE4Tl9MSUJSQVJJRVN9
CkBAIC05MzgsNyArOTQwLDcgQEAgc2V0KEhBU0hfTFVUX0dFTkVSQVRPUiAke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0vY3JlYXRlX2hhc2hfdGFibGUpCiBtYWNybyhHRU5FUkFURV9IQVNIX0xV
VCBfaW5wdXQgX291dHB1dCkKICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgICAgIE9VVFBV
VCAke19vdXRwdXR9Ci0gICAgICAgIERFUEVORFMgJHtIQVNIX0xVVF9HRU5FUkFUT1J9ICR7X2lu
cHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAg
ICAgICAgREVQRU5EUyAke0hBU0hfTFVUX0dFTkVSQVRPUn0gJHtfaW5wdXR9ICR7SmF2YVNjcmlw
dENvcmVfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCiAgICAgICAgIENPTU1BTkQg
JHtQRVJMX0VYRUNVVEFCTEV9ICR7SEFTSF9MVVRfR0VORVJBVE9SfSAke19pbnB1dH0gLWkgPiAk
e19vdXRwdXR9CiAgICAgICAgIFZFUkJBVElNKQogICAgIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRD
b3JlX0hFQURFUlMgJHtfb3V0cHV0fSkKQEAgLTEwNTUsOSArMTA1Nyw5IEBAIGVuZGlmICgpCiAK
IGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfS9Db21iaW5lZERvbWFpbnMuanNvbgotICAgIE1BSU5fREVQRU5ERU5DWSAk
e0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtY29tYmluZWQt
aW5zcGVjdG9yLWpzb24ucHkKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUn0vZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkKICAgICBERVBF
TkRTICR7SmF2YVNjcmlwdENvcmVfSU5TUEVDVE9SX0RPTUFJTlN9Ci0gICAgQ09NTUFORCAke1BZ
VEhPTl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0v
Z2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgJHtKYXZhU2NyaXB0Q29yZV9JTlNQ
RUNUT1JfRE9NQUlOU30gPiAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0Nv
bWJpbmVkRG9tYWlucy5qc29uCisgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0ph
dmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNv
bi5weSAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9ET01BSU5TfSA+ICR7REVSSVZFRF9TT1VS
Q0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vQ29tYmluZWREb21haW5zLmpzb24KICAgICBWRVJCQVRJ
TSkKIAogIyBJbnNwZWN0b3IgQmFja2VuZCBEaXNwYXRjaGVycywgRnJvbnRlbmQgRGlzcGF0Y2hl
cnMsIFR5cGUgQnVpbGRlcnMKQEAgLTExMDAsOSArMTEwMiw5IEBAIHNldChKYXZhU2NyaXB0Q29y
ZV9CVUlMVElOU19TT1VSQ0VTCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgIE9VVFBVVCAke0RF
UklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1aWx0aW5zLmNwcCAke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1aWx0aW5zLmgKLSAgIE1BSU5fREVQ
RU5ERU5DWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMK
KyAgIE1BSU5fREVQRU5ERU5DWSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0
ZS1qcy1idWlsdGlucwogICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJD
RVN9Ci0gICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0LWRpcmVjdG9yeSAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vYnVpbHRpbnMgLS1vdXRwdXQgJHtERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGlucy5jcHAKKyAgIENPTU1BTkQgJHtQWVRIT05fRVhF
Q1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRp
bnMgLS1pbnB1dC1kaXJlY3RvcnkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2J1aWx0aW5z
IC0tb3V0cHV0ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vSlNDQnVpbHRp
bnMuY3BwCiAgICBWRVJCQVRJTSkKIAogbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfU09VUkNF
UwpAQCAtMTEyMiwxMCArMTEyNCwxMCBAQCBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9IRUFE
RVJTCiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0pB
VkFTQ1JJUFRDT1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCAke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9L0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5qcwogICAgIE1B
SU5fREVQRU5ERU5DWSAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzCi0gICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9TQ1JJ
UFRTX0RJUn0veHhkLnBsICR7SmF2YVNjcmlwdENvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS9q
c21pbi5weQorICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBs
ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2pzbWluLnB5CiAgICAgQ09NTUFORCBlY2hv
ICIvLyMgc291cmNlVVJMPV9fV2ViSW5zcGVjdG9ySW5qZWN0ZWRTY3JpcHRfXyIgPiAke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5q
cwotICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9JTlNQ
RUNUT1JfU0NSSVBUU19ESVJ9L2pzbWluLnB5IDwgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyA+PiAke0RFUklWRURfU09VUkNFU19KQVZBU0NS
SVBUQ09SRV9ESVJ9L0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5qcwotICAgIENPTU1BTkQgJHtQ
RVJMX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS94
eGQucGwgSW5qZWN0ZWRTY3JpcHRTb3VyY2VfanMgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQ
VENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMgJHtERVJJVkVEX1NPVVJDRVNf
SkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5oCisgICAgQ09NTUFORCAk
e1BZVEhPTl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9qc21pbi5w
eSA8ICR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMgPj4gJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlw
dFNvdXJjZS5taW4uanMKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke0phdmFTY3Jp
cHRDb3JlX1NDUklQVFNfRElSfS94eGQucGwgSW5qZWN0ZWRTY3JpcHRTb3VyY2VfanMgJHtERVJJ
VkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4u
anMgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNv
dXJjZS5oCiAgICAgVkVSQkFUSU0pCiAKIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0hFQURF
UlMgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNv
dXJjZS5oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAw
NDY2OGRlNWJjOTA4MzVjZjhjMDI0ZmI1ZGI4M2RhOTQ5MWUzNWYzLi45MDkxMTJkNDBmNGRmZTJk
ZmRlYTRkNGJjNzkwOGIyOWI0Mzk2OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtNzgsNiArNzgsOCBAQCBhbGwgOiBcCiBQWVRIT04gPSBweXRob24K
IFBFUkwgPSBwZXJsCiAKK0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSID0gJChKYXZhU2NyaXB0
Q29yZSkvU2NyaXB0cworCiBpZmVxICgkKE9TKSxXaW5kb3dzX05UKQogICAgIERFTEVURSA9IGNt
ZCAvL0MgZGVsCiBlbHNlCkBAIC04Niw5ICs4OCw5IEBAIGVuZGlmCiAjIC0tLS0tLS0tCiAKIC5Q
SE9OWTogSlNDQnVpbHRpbnMKLUpTQ0J1aWx0aW5zOiAkKEphdmFTY3JpcHRDb3JlKS9nZW5lcmF0
ZS1qcy1idWlsdGlucyBKU0NCdWlsdGlucy5oIEpTQ0J1aWx0aW5zLmNwcAotSlNDQnVpbHRpbnMu
aDogJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdGUtanMtYnVpbHRpbnMgJChKYXZhU2NyaXB0Q29y
ZSkvYnVpbHRpbnMgSlNDQnVpbHRpbnNTb3VyY2VzCi0JJChQWVRIT04pICQoSmF2YVNjcmlwdENv
cmUpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQtZGlyZWN0b3J5ICQoSmF2YVNjcmlwdENv
cmUpL2J1aWx0aW5zIC0tb3V0cHV0ICRACitKU0NCdWlsdGluczogJChKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMgSlNDQnVpbHRpbnMuaCBKU0NCdWlsdGlu
cy5jcHAKK0pTQ0J1aWx0aW5zLmg6ICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVy
YXRlLWpzLWJ1aWx0aW5zICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zIEpTQ0J1aWx0aW5zU291
cmNlcworCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9nZW5lcmF0ZS1q
cy1idWlsdGlucyAtLWlucHV0LWRpcmVjdG9yeSAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucyAt
LW91dHB1dCAkQAogCiBKU0NCdWlsdGlucy5jcHA6IEpTQ0J1aWx0aW5zLmgKIApAQCAtMTg1LDgg
KzE4Nyw4IEBAIElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUyA9IFwKIAkkKEphdmFTY3JpcHRD
b3JlKS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkgXAog
CSQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yLnB5
IFwKIAkkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL21vZGVscy5w
eSBcCi0JJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkgXAogCSQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3Jp
cHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSBcCisJJChKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkg
XAogIwogCiBhbGwgOiBcCkBAIC0yMDIsMTcgKzIwNCwxNyBAQCBhbGwgOiBcCiBFbmFibGVkSW5z
cGVjdG9yRG9tYWlucyA6ICQoSmF2YVNjcmlwdENvcmUpL1VwZGF0ZUNvbnRlbnRzLnB5IGZvcmNl
CiAJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmUpL1VwZGF0ZUNvbnRlbnRzLnB5ICckKElOU1BF
Q1RPUl9ET01BSU5TKScgJEAKIAotQ29tYmluZWREb21haW5zLmpzb24gOiBpbnNwZWN0b3Ivc2Ny
aXB0cy9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAkKElOU1BFQ1RPUl9ET01B
SU5TKSBFbmFibGVkSW5zcGVjdG9yRG9tYWlucwotCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3Jl
KS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAk
KElOU1BFQ1RPUl9ET01BSU5TKSA+IC4vQ29tYmluZWREb21haW5zLmpzb24KK0NvbWJpbmVkRG9t
YWlucy5qc29uIDogJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkgJChJTlNQRUNUT1JfRE9NQUlOUykgRW5hYmxlZEluc3BlY3Rv
ckRvbWFpbnMKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJh
dGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgJChJTlNQRUNUT1JfRE9NQUlOUykgPiAuL0Nv
bWJpbmVkRG9tYWlucy5qc29uCiAKICMgSW5zcGVjdG9yIEJhY2tlbmQgRGlzcGF0Y2hlcnMsIEZy
b250ZW5kIERpc3BhdGNoZXJzLCBUeXBlIEJ1aWxkZXJzCiBJbnNwZWN0b3JGcm9udGVuZERpc3Bh
dGNoZXJzLmggOiBDb21iaW5lZERvbWFpbnMuanNvbiAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NS
SVBUUykKIAkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5IC0tZnJhbWV3b3JrIEphdmFTY3Jp
cHRDb3JlIC0tb3V0cHV0RGlyIC4gLi9Db21iaW5lZERvbWFpbnMuanNvbgogCi1JbmplY3RlZFNj
cmlwdFNvdXJjZS5oIDogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzICQoSmF2YVNj
cmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL2pzbWluLnB5ICQoSmF2YVNjcmlwdENvcmUpL2lu
c3BlY3Rvci9zY3JpcHRzL3h4ZC5wbAorSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCA6IGluc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9q
c21pbi5weSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwKIAllY2hvICIvLyMg
c291cmNlVVJMPV9fV2ViSW5zcGVjdG9ySW5qZWN0ZWRTY3JpcHRfXyIgPiAuL0luamVjdGVkU2Ny
aXB0U291cmNlLm1pbi5qcwotCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3Iv
c2NyaXB0cy9qc21pbi5weSA8ICQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdFNvdXJjZS5qcyA+PiAuL0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5qcwotCSQoUEVSTCkg
JChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMveHhkLnBsIEluamVjdGVkU2NyaXB0
U291cmNlX2pzIC4vSW5qZWN0ZWRTY3JpcHRTb3VyY2UubWluLmpzIEluamVjdGVkU2NyaXB0U291
cmNlLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvanNtaW4ucHkg
PCAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgPj4g
Li9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMKKwkkKFBFUkwpICQoSmF2YVNjcmlwdENvcmVf
U0NSSVBUU19ESVIpL3h4ZC5wbCBJbmplY3RlZFNjcmlwdFNvdXJjZV9qcyAuL0luamVjdGVkU2Ny
aXB0U291cmNlLm1pbi5qcyBJbmplY3RlZFNjcmlwdFNvdXJjZS5oCiAJJChERUxFVEUpIEluamVj
dGVkU2NyaXB0U291cmNlLm1pbi5qcwogCiAjIFdlYiBSZXBsYXkgaW5wdXRzIGdlbmVyYXRvcgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZjM0MjRmOTIzMDhiODgyNTgyMzI5ZDNi
YmYyNDlkNDc1MWMxNzYwLi4wNTY2MzZjZjIzYTBmZjliOGVkZDc4OGQ1NjFmMTQ0OWQ5N2MwODMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTU2LDcgKzk1Niw2IEBACiAJCTJB
REZBMjYzMThFRjM1NDAwMDRGOUZDQyAvKiBHQ0xvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFERkEyNjIxOEVGMzU0MDAwNEY5RkNDIC8q
IEdDTG9nZ2luZy5jcHAgKi87IH07CiAJCTJBRjczODJDMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1
Y3R1cmVJRFRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJBRjczODJBMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmNwcCAq
LzsgfTsKIAkJMkFGNzM4MkQxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRjczODJCMThC
QkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMkRGQjhBRkUxQkIzMjNCRDAwOTNEMjM3IC8q
IGdlbmVyYXRlLWpzLWJ1aWx0aW5zIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTcxREE4MEQxODgwRDcxRjAwRDFGMjk5IC8qIGdlbmVyYXRlLWpzLWJ1aWx0
aW5zICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3
MUQ4NDJEMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8q
IGxpYnouZHlsaWIgKi87IH07CiAJCTQxMzU5Q0YzMEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29u
dmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDIxMjAyMjkwQUQ0MzEwQzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi87IH07CiAJCTQx
REVBMTMyMUI5RjMxNjMwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAv
KiBCdWlsdGluVXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTIxNSw2ICsxMjE0LDEyIEBACiAJCTk3ODgwMTQxMTQ3MUFEOTIwMDQxQjAx
NiAvKiBKU0RhdGVNYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5Nzg4RkMyMzE0NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5MjhGRjNCMThBQzRB
RUMwMEI4Q0YxMiAvKiBKU1JlcGxheUlucHV0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTI4RkYzOTE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBs
YXlJbnB1dHMuY3BwICovOyB9OwogCQk5OTI4RkYzQzE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBs
YXlJbnB1dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk5MjhGRjNBMThBQzRBRUMwMEI4Q0YxMiAvKiBKU1JlcGxheUlucHV0cy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5NTlFOTJCMUJEMTdGQTQw
MDFBQTQxMyAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTU5RTkyNzFCRDE3RkEwMDAxQUE0MTMgLyogY3NzbWluLnB5ICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5NTlFOTJDMUJEMTdG
QTQwMDFBQTQxMyAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTlFOTI4MUJEMTdGQTAwMDFBQTQxMyAvKiBnZW5l
cmF0ZS1qcy1idWlsdGlucyAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5OTU5RTkyRDFCRDE3RkE0MDAxQUE0MTMgLyoganNtaW4ucHkgaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU5RTkyOTFCRDE3RkEwMDAx
QUE0MTMgLyoganNtaW4ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOTk1OUU5MkUxQkQxN0ZBNDAwMUFBNDEzIC8qIHh4ZC5wbCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTlFOTJBMUJEMTdGQTAwMDFB
QTQxMyAvKiB4eGQucGwgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTk1OUU5MzExQkQxODI3MjAwMUFBNDEzIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWlu
c3BlY3Rvci1qc29uLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTk1OUU5MkYxQkQxODFGNjAwMUFBNDEzIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWluc3Bl
Y3Rvci1qc29uLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTk5NTlFOTMyMUJEMTgyNzkwMDFBQTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHls
ZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5NTlFOTMwMUJEMTgxRjYwMDFBQTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlm
eS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5OTYyMzFFOTE4RDE4MDQyMDBDMDNGREEgLyogSW5zcGVj
dG9yQmFja2VuZENvbW1hbmRzLmpzIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTUzMjQzOTYxODU2QTQ3NTAwMkVENjkyIC8qIEluc3BlY3RvckJhY2tlbmRD
b21tYW5kcy5qcyAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5OUNDMEI2MjE4QkU5OTQ2MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0
c1RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5RTQ1QTFFMThBMUIxRTcwMDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRz
VGVtcGxhdGVzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTk5Q0MwQjYzMThCRTk5NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5w
dXRzLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlF
NDVBMUQxOEExQjFFNzAwMjZEODhGIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkgKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyOTYsNyAr
MTMwMSw2IEBACiAJCUE1MzI0MzhBMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVu
ZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNTMyNDM4NDE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRj
aGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE1MzI0MzhCMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUzMjQzODUx
ODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi87IH07CiAJ
CUE1MzI0MzhDMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzI0Mzg2MTg1
NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNTMyNDM5NDE4NTY5NzA5MDAy
RUQ2OTIgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTMyNDM5MTE4NTY5NkU2MDAyRUQ2
OTIgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTUzMjQzOTgxODU2QTQ4OTAwMkVE
NjkyIC8qIENvbWJpbmVkRG9tYWlucy5qc29uIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTUzMjQzOTUxODU2QTQ3NTAwMkVENjkyIC8qIENvbWJpbmVkRG9t
YWlucy5qc29uICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE1MzM5RUM2MUJCMzk5QTYwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzM5RUM1MUJCMzk5
OTAwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTMzOUVDNzFCQjM5OUE5MDA1NEYwMDUgLyog
SW5zcGVjdG9ySGVhcEFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1MzM5RUM0MUJCMzk5OTAwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdl
bnQuY3BwICovOyB9OwpAQCAtMTMzMSwxMCArMTMzNSw2IEBACiAJCUE1ODQwMzIwMThCRkZCRTEw
MDVBMDgxMSAvKiBJbnNwZWN0b3JBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTVDRUVFMTMxODdGM0JBRDAwRTU1Qzk5IC8qIEluc3BlY3RvckFn
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTU4NDBFMjAxODdCN0I4NjAwODQzQjEwIC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODQwRTFFMTg3QjdC
ODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAgKi87IH07CiAJCUE1ODQwRTIx
MTg3QjdCODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NDBFMUYxODdCN0I4NjAwODQzQjEw
IC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTU4NDBFMjcxODdDOTgxRTAwODQzQjEwIC8qIGNzc21pbi5w
eSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODQwRTI2
MTg3Qzk4MDcwMDg0M0IxMCAvKiBjc3NtaW4ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTU4NDBFMjkxODdDQTVFNjAwODQzQjEwIC8qIGlubGlu
ZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5IGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NDBFMjgxODdDQTVCODAwODQzQjEwIC8q
IGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE1ODQwRTJBMTg3Q0E3NTkw
MDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNTEzRTVDNTE4NUY5MkYwMDA3RTk1QUQgLyogeHhkLnBsICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE1ODQwRTJCMTg3Q0E3NUIwMDg0
M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1MTNFNUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNThDMDI0MjE4RTRBNDFBMDAw
MzJCQzUgLyogSlNDb250ZXh0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU4QzAyNDExOEU0QTQxQTAwMDMyQkM1IC8qIEpTQ29udGV4dFBy
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNThFMzU5MTE4NjBERUNGMDAxRjI0RkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1OEUzNTkwMTg2MERF
QzcwMDFGMjRGRSAvKiBJbmplY3RlZFNjcmlwdEhvc3QuY3BwICovOyB9OwogCQlBNTkzQ0Y3QzE4
NDAzNjAzMDBCRkNFMjcgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU5M0NGN0ExODQwMzYwMzAw
QkZDRTI3IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLzsgfTsKQEAgLTMxMjQs
NiArMzEyNCwxMiBAQAogCQk5OTI4RkYzOTE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBsYXlJbnB1
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXBsYXlJbnB1
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTI4RkYzQTE4QUM0QUVDMDBC
OENGMTIgLyogSlNSZXBsYXlJbnB1dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNSZXBsYXlJbnB1dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyOEZG
M0QxOEFDNEIxQzAwQjhDRjEyIC8qIEpTSW5wdXRzLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmpzb247
IHBhdGggPSBKU0lucHV0cy5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTU5
RTkyNzFCRDE3RkEwMDAxQUE0MTMgLyogY3NzbWluLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
cHl0aG9uOyBwYXRoID0gY3NzbWluLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTU5RTkyODFCRDE3RkEwMDAxQUE0MTMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtanMtYnVpbHRpbnMiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTU5RTkyOTFCRDE3RkEwMDAxQUE0MTMgLyoganNt
aW4ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBqc21pbi5weTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk1OUU5MkExQkQxN0ZBMDAwMUFBNDEzIC8qIHh4
ZC5wbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBlcmw7IHBhdGggPSB4eGQucGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NTlFOTJGMUJEMTgxRjYwMDFBQTQxMyAvKiBnZW5lcmF0
ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhv
bjsgcGF0aCA9ICJnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NTlFOTMwMUJEMTgxRjYwMDFBQTQxMyAvKiBpbmxpbmUt
YW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9ICJpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2Ny
aXB0cy5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RTQ1QTFEMThBMUIxRTcw
MDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQucHl0aG9uOyBwYXRoID0gQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNDVBMUUxOEExQjFFNzAwMjZEODhGIC8qIENvZGVH
ZW5lcmF0b3JSZXBsYXlJbnB1dHNUZW1wbGF0ZXMucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5w
eXRob247IHBhdGggPSBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU0NUExRjE4QTFCMjU5MDAyNkQ4OEYgLyogRW1w
dHlJbnB1dEN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eUlu
cHV0Q3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTkyLDggKzMxOTgs
NiBAQAogCQlBNTEzRTVCQzE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbmpl
Y3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTEzRTVCRDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUxM0U1QzMxODVG
OTJDOTAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE1MTNFNUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnB5dGhvbjsgcGF0aCA9IGpzbWluLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBNTEzRTVDNTE4NUY5MkYwMDA3RTk1QUQgLyogeHhkLnBsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQucGVybDsgcGF0aCA9IHh4ZC5wbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTUxM0U1QzYxODVGOTQzNjAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0U291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MTNFNUM4MTg1Rjk2MjQwMDdFOTVBRCAvKiBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTUxM0U1QzkxODVGOTYyNDAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0TWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdE1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMDYsNyArMzIxMCw2IEBACiAJCUE1MzI0
Mzg1MTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTUzMjQzODYxODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclBy
b3RvY29sT2JqZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUzMjQzOEQxODU2OTZDQTAwMkVENjky
IC8qIHByb3RvY29sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZm9sZGVyOyBwYXRoID0gcHJvdG9jb2w7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE1MzI0MzkxMTg1Njk2RTYwMDJFRDY5MiAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0
b3ItanNvbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9ICJnZW5lcmF0
ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1MzI0Mzk1MTg1NkE0NzUwMDJFRDY5MiAvKiBDb21iaW5lZERvbWFpbnMuanNvbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuanNvbjsgcGF0aCA9IENvbWJpbmVkRG9tYWlucy5qc29uOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNTMyNDM5NjE4NTZBNDc1MDAyRUQ2OTIgLyogSW5zcGVjdG9y
QmFja2VuZENvbW1hbmRzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNTMzOUVDNDFCQjM5OTkwMDA1NEYwMDUgLyogSW5zcGVjdG9ySGVhcEFnZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckhlYXBBZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjM5LDggKzMyNDIsNiBAQAogCQlB
NTdEMjNGMDE4OTFCNUI0MDAzMUM3RkEgLyogQ29udGVudFNlYXJjaFV0aWxpdGllcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50U2VhcmNoVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1ODQwRTFFMTg3QjdCODYwMDg0M0IxMCAvKiBJ
bmplY3RlZFNjcmlwdE1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1ODQwRTFGMTg3QjdCODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdE1vZHVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTg0MEUyNjE4N0M5ODA3MDA4NDNCMTAgLyog
Y3NzbWluLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gY3NzbWluLnB5
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTg0MEUyODE4N0NBNUI4MDA4NDNCMTAg
LyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVl
dHMtYW5kLXNjcmlwdHMucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNThDMDI0
MTE4RTRBNDFBMDAwMzJCQzUgLyogSlNDb250ZXh0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0NvbnRleHRQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE1OEUzNTkwMTg2MERFQzcwMDFGMjRGRSAvKiBJbmplY3RlZFNjcmlwdEhvc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU5M0NGN0ExODQwMzYwMzAwQkZDRTI3IC8qIEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMzMTksNyArMzMyMCw2IEBACiAJCUE3MTIzNkU0MTE5NUYzM0MwMEJEMjE3NCAv
KiBKSVRPcGNvZGVzMzJfNjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSklUT3Bjb2RlczMyXzY0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcx
OEY2MUExMTc1NEEyMTAwMjQ2NUE3IC8qIFJlZ0V4cEppdFRhYmxlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBKaXRUYWJsZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTcxOEY4MjExMTc4RUI0QjAwMjQ2NUE3IC8qIGNyZWF0ZV9yZWdleF90YWJs
ZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnB5dGhvbjsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IGNyZWF0ZV9yZWdleF90YWJs
ZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3MURBODBEMTg4MEQ3MUYwMEQxRjI5
OSAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsg
cGF0aCA9ICJnZW5lcmF0ZS1qcy1idWlsdGlucyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3MjAyOEI0MTc5NzYwMUUwMDk4MDI4QyAvKiBKU0NUZXN0UnVubmVyVXRpbHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDVGVzdFJ1bm5lclV0aWxzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyMDI4QjUxNzk3NjAxRTAwOTgwMjhD
IC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NUZXN0UnVubmVyVXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcy
MDI4QjkxNzk3NjAzRDAwOTgwMjhDIC8qIEpTRnVuY3Rpb25JbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRnVuY3Rpb25JbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zODIyLDkgKzM4MjIsOSBAQAogCQkwMzQ3NjhERkZGMzhBNTA0MTFE
QjlDOEIgLyogUHJvZHVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgKi8sCiAJCQkJOTMyRjVCRTEwODIyQTFDNzAwNzM2OTc1IC8qIGpzYyAqLywKIAkJCQkw
RkY5MjJDRjE0RjQ2QjEzMDA0MUEyNEUgLyogSlNDTExJbnRPZmZzZXRzRXh0cmFjdG9yICovLAot
CQkJCTkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsg
Ki8sCiAJCQkJMEZDRUZBQjYxODA1RDYxNjAwNDcyQ0U0IC8qIGxpYmxsdm1Gb3JKU0MuZHlsaWIg
Ki8sCiAJCQkJMTQxMjExMjAwQTQ4NzkzQzAwNDgwMjU1IC8qIG1pbmlkb20gKi8sCiAJCQkJMTRC
RDU5QkYwQTNFOEY5MDAwQkFGNTlDIC8qIHRlc3RhcGkgKi8sCkBAIC0zODQyLDcgKzM4NDIsNiBA
QAogCQkJCTg2MDRGNEYyMTQzQTZDNDQwMEIyOTVGNSAvKiBDaGFuZ2VMb2cgKi8sCiAJCQkJRjY5
MkE4NTQwMjU1NTk3RDAxRkY2MEY3IC8qIGNyZWF0ZV9oYXNoX3RhYmxlICovLAogCQkJCUE3MThG
ODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhfdGFibGVzICovLAotCQkJCUE3MURB
ODBEMTg4MEQ3MUYwMEQxRjI5OSAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyAqLywKIAkJCQk0NUUx
MkQ4ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLywKIAkJCQlGNjhFQkI4QzAyNTVENEM2
MDFGRjYwRjcgLyogY29uZmlnLmggKi8sCiAJCQkJRjVDMjkwRTYwMjg0Rjk4RTAxODYzNUNBIC8q
IEphdmFTY3JpcHRDb3JlUHJlZml4LmggKi8sCkBAIC0zODU0LDEyICszODUzLDkgQEAKIAkJCQlB
N0Q4MDE5RjE4ODBENjZFMDAyNkMzOUIgLyogYnVpbHRpbnMgKi8sCiAJCQkJOTY5QTA3OEYwRUQx
RDNBRTAwRjFGNjgxIC8qIGJ5dGVjb2RlICovLAogCQkJCTdFMzlEODFEMEVDMzhFRkEwMDNBRjEx
QSAvKiBieXRlY29tcGlsZXIgKi8sCi0JCQkJMUM5MDUxM0UwQkE5RTg4MzAwODFFOUQwIC8qIENv
bmZpZ3VyYXRpb25zICovLAogCQkJCTE0ODBEQjlBMEREQzIyMzEwMDNDRkRGMiAvKiBkZWJ1Z2dl
ciAqLywKLQkJCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICov
LAogCQkJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8sCiAJCQkJMEZGNDI3MkUx
NThFQkNDRTAwNENCOUZGIC8qIGRpc2Fzc2VtYmxlciAqLywKLQkJCQkwODY3RDY5QUZFODQwMjhG
QzAyQUFDMDcgLyogRnJhbWV3b3JrcyAqLywKIAkJCQkwRkVBMDlGQzE3MDUxMzdGMDBCQjcyMkMg
LyogZnRsICovLAogCQkJCTE0MkUzMTJBMTM0RkYwQTYwMEFGQURCNSAvKiBoZWFwICovLAogCQkJ
CUE1QkExNURGMTgyMzQwOTIwMEE4MkU2OSAvKiBpbnNwZWN0b3IgKi8sCkBAIC0zODY4LDE1ICsz
ODY0LDE5IEBACiAJCQkJMEY0NjgwOUMxNEJBN0Y0RDAwQkZFMjcyIC8qIGxsaW50ICovLAogCQkJ
CTBGQ0VGQUFEMTgwNUNBNDQwMDQ3MkNFNCAvKiBsbHZtICovLAogCQkJCTdFMzlEODM3MEVDM0Ez
ODgwMDNBRjExQSAvKiBwYXJzZXIgKi8sCi0JCQkJMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8q
IFByb2R1Y3RzICovLAogCQkJCTk1QUI4MzFBMERBNDJDNjkwMEJDODNGMyAvKiBwcm9maWxlciAq
LywKIAkJCQk5OUU0NUEwQzE4QTAxRTkzMDAyNkQ4OEYgLyogcmVwbGF5ICovLAotCQkJCTkzMkZD
M0MyMDgyNEJCNzAwMDVCM0M3NSAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJN0VGNkUwQkIwRUI3QTFF
QzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8sCiAJCQkJMTQxMjExMDAwQTQ4NzcyNjAwNDgwMjU1IC8q
IHRlc3RzICovLAogCQkJCTg2MDNDRUYwMTRDNzUzRUYwMEFFNTlFMyAvKiB0b29scyAqLywKIAkJ
CQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2FzbSAqLywKIAkJCQk4NkVBQzQ4QzBGOTNF
OEI5MDA4RUM5NDggLyogeWFyciAqLywKKwkJCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyog
RGVyaXZlZCBTb3VyY2VzICovLAorCQkJCTkzMkZDM0MyMDgyNEJCNzAwMDVCM0M3NSAvKiBSZXNv
dXJjZXMgKi8sCisJCQkJOTk1OUU5MjUxQkQxN0YxRTAwMUFBNDEzIC8qIFNjcmlwdHMgKi8sCisJ
CQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8sCisJCQkJMDM0NzY4
REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovLAorCQkJCTFDOTA1MTNFMEJBOUU4ODMw
MDgxRTlEMCAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCSk7CiAJCQluYW1lID0gSmF2YVNjcmlw
dENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTc0Nyw2ICs1NzQ3LDE5IEBA
CiAJCQlwYXRoID0gYnl0ZWNvZGU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQk5OTU5RTkyNTFCRDE3RjFFMDAxQUE0MTMgLyogU2NyaXB0cyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTk1OUU5MjgxQkQxN0ZBMDAwMUFBNDEzIC8q
IGdlbmVyYXRlLWpzLWJ1aWx0aW5zICovLAorCQkJCTk5NTlFOTI3MUJEMTdGQTAwMDFBQTQxMyAv
KiBjc3NtaW4ucHkgKi8sCisJCQkJOTk1OUU5MkYxQkQxODFGNjAwMUFBNDEzIC8qIGdlbmVyYXRl
LWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICovLAorCQkJCTk5NTlFOTMwMUJEMTgxRjYwMDFB
QTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLywK
KwkJCQk5OTU5RTkyOTFCRDE3RkEwMDAxQUE0MTMgLyoganNtaW4ucHkgKi8sCisJCQkJOTk1OUU5
MkExQkQxN0ZBMDAwMUFBNDEzIC8qIHh4ZC5wbCAqLywKKwkJCSk7CisJCQlwYXRoID0gU2NyaXB0
czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk5RTQ1QTBDMThBMDFFOTMw
MDI2RDg4RiAvKiByZXBsYXkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtNTc5NywxMiArNTgxMCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCUM0NzAzQ0MxMTkyODQ0QTQwMDEzRkJFQSAvKiBjb2RlZ2VuICovLAotCQkJ
CUE1ODQwRTI2MTg3Qzk4MDcwMDg0M0IxMCAvKiBjc3NtaW4ucHkgKi8sCi0JCQkJQTUzMjQzOTEx
ODU2OTZFNjAwMkVENjkyIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICov
LAogCQkJCUM0NzAzQ0JGMTkyODQ0OTYwMDEzRkJFQSAvKiBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJv
dG9jb2wtYmluZGluZ3MucHkgKi8sCi0JCQkJQTU4NDBFMjgxODdDQTVCODAwODQzQjEwIC8qIGlu
bGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICovLAotCQkJCUE1MTNF
NUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLywKLQkJCQlBNTEzRTVDNTE4NUY5MkYw
MDA3RTk1QUQgLyogeHhkLnBsICovLAogCQkJKTsKIAkJCXBhdGggPSBzY3JpcHRzOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTYwNzQsNiArNjA4Miw3IEBACiAJCQkJMEYwQjgzQjkx
NEJDRjk1RjAwODg1QjRGIC8qIENhbGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjNCN0UyQjE5QTExQjgwMDBEOUJDNTYgLyogQ2FsbFZhcmlhbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTQyMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhl
bHBlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMUMzRERBMUJCQ0UwOUUwMEU1MjNFNCAvKiBD
ZWxsU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkFBQUU1MEUxRjQyNjUwMEFEODdEOCAv
KiBDbGFzc0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDI2MUFBOTA5NTYwMEQzM0Iz
MyAvKiBDbG9uZWRBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzk3MEVEMUQz
QUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovLApAQCAtNjEyMCw3ICs2MTI5
LDcgQEAKIAkJCQlDNEY0QjZGNDFBMDVDOTQ0MDA1Q0FCNzYgLyogY3BwX2dlbmVyYXRvci5weSBp
biBIZWFkZXJzICovLAogCQkJCUM0RjRCNkYzMUEwNUM5NDQwMDVDQUI3NiAvKiBjcHBfZ2VuZXJh
dG9yX3RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovLAogCQkJCTVERTZFNUIzMEUxNzI4RUMwMDE4
MDQwNyAvKiBjcmVhdGVfaGFzaF90YWJsZSBpbiBIZWFkZXJzICovLAotCQkJCUE1ODQwRTI3MTg3
Qzk4MUUwMDg0M0IxMCAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyQjFC
RDE3RkE0MDAxQUE0MTMgLyogY3NzbWluLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJMkExMTEyNDYx
OTJGQ0U3OTAwNUVFMThEIC8qIEN1c3RvbUdldHRlclNldHRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY0MjZBNEIxNDYwQ0Q2RTAwMTMxRjhGIC8qIERhdGFGb3JtYXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMkI2NkRGMTdCNkI1QUIwMEE3QUUzRiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02MjA1LDEwICs2MjE0LDggQEAKIAkJCQlBNzhBOTc3NTE3OTczOEI4MDA5REY3NDQg
LyogREZHRmFpbGVkRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JGRjNDMDE3OTg2
ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTc4QTk3NzcxNzk3MzhCODAwOURGNzQ0IC8qIERGR0ZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJN0I4MzI5QkYxQkIyMUZFMzAwNjQ5QTZFIC8qIFdBU01GdW5jdGlvbkxMVk1JUkdlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkRDMTYxNTFDNUQ0RjAwQ0Q4OTEwIC8qIERG
R0ZpeHVwUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUQzMzk3MTdGRkM0RTYwMDczQzJC
QyAvKiBERkdGbHVzaGVkQXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzJCRDExMUJCMzRGMTkw
MDkzQTU3RiAvKiBIZWFwSGVscGVyUG9vbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRjgx
N0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJERDgxNTFBQjNEOEJFMDBCQkI4RTggLyogREZHRm9yQWxsS2lsbHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNjlDQzg5MTkzQUM2MEEwMDQ1NzU5RSAvKiBERkdGcm96ZW5WYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC02Mjc3LDcgKzYyODQsNiBAQAogCQkJCTBGQjE3NjYzMTk2QjhGOUUwMDkx
MDUyQSAvKiBERkdQdXJlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGM0ExQkZBMUE5RUNC
N0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODZFQzlERDExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1JlZ2lzdGVyQmFuay5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJREVBN0UyNDUxQkJDNjc3RjAwRDc4NDQwIC8qIEpTVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAv
KiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0E0MjQzMTdBMEJCRkQwMEE4
REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQxMDE3RjE3
OURBRjgwMDAyRUI4QkEgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3Iu
aCBpbiBIZWFkZXJzICovLApAQCAtNjI5Niw3ICs2MzAyLDYgQEAKIAkJCQkwRjYzOTQ3ODE1RENF
MzRCMDA2QTU5N0MgLyogREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1MEFGM0MxOTNFOEIzOTAwNjc0RUU4IC8qIERGR1N0cnVjdHVyZUNsb2JiZXJTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3OTA4NTYxOUEyOTBCMjAwRjYzMTBDIC8qIERGR1N0
cnVjdHVyZVJlZ2lzdHJhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI0RkI3NTFC
Qzg0MzE0MDAyNUNBNUEgLyogRlRMTGF6eVNsb3dQYXRoQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyRkNDRkYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzA5N0EyMTQ2QjI4Q0MwMENGMjQ0MiAvKiBERkdUaHVua3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRDhBMzI4MTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0lu
amVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTYzNzgsNiArNjM4Myw4IEBACiAJCQkJ
MEZEMTIwMzAxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRDEyMDM0MUE4Qzg1QkQwMDBGNTI4MCAvKiBGVExKU0NhbGxWYXJhcmdzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2Mjc3NERBQjFCOEQ0QjE5MDAwNkYwNUEgLyogRlRMSlNUYWlsQ2Fs
bC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCNEZCNzQxQkM4NDMxNDAwMjVDQTVBIC8qIEZUTExh
enlTbG93UGF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCNEZCNzUxQkM4NDMxNDAwMjVDQTVB
IC8qIEZUTExhenlTbG93UGF0aENhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEYyQjk2MTcy
RTA0QTMwMDdEQkRBNSAvKiBGVExMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNFRkFFMDE4
MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEw
QTEwMTcwNTEzREIwMEJCNzIyQyAvKiBGVExMb3dlckRGR1RvTExWTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC02NDIwLDkgKzY0MjcsOSBAQAogCQkJCTJBQUJDREU3MThFRjI5NDIwMDAwMjA5NiAvKiBH
Q0xvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NEU4RUIwMThCRkZCQkIwMDU1NkQyOCAv
KiBHQ1NlZ21lbnRlZEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTRFOEVCMTE4QkZGQkJF
MDA1NTZEMjggLyogR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUE1MzI0Mzk0MTg1Njk3MDkwMDJFRDY5MiAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3It
anNvbi5weSBpbiBIZWFkZXJzICovLAorCQkJCTk5NTlFOTMxMUJEMTgyNzIwMDFBQTQxMyAvKiBn
ZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUM0
NzAzQ0MwMTkyODQ0OTYwMDEzRkJFQSAvKiBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkgaW4gSGVhZGVycyAqLywKLQkJCQkyREZCOEFGRTFCQjMyM0JEMDA5M0QyMzcgLyog
Z2VuZXJhdGUtanMtYnVpbHRpbnMgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyQzFCRDE3RkE0
MDAxQUE0MTMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVB
NzBFQzE5RjVCM0VBMDA5OEY1RUMgLyogZ2VuZXJhdGVfY3BwX2FsdGVybmF0ZV9iYWNrZW5kX2Rp
c3BhdGNoZXJfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFRjlCMTQxQTFENDNGNjAw
NzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVFRjlCMTUxQTFENDNGQTAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9i
YWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKQEAgLTY0
NTksNiArNjQ2Niw3IEBACiAJCQkJMTQyRTMxMzgxMzRGRjBBNjAwQUZBREI1IC8qIEhhbmRsZVN0
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc4Mjk3QjEzNzlFOEE4MDBBN0MyQTMgLyogSGFu
ZGxlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0QkE3QTk4MTNBQURGRjgwMDVCN0MyQyAv
KiBIZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMyQkQxMTFCQjM0RjE5MDA5M0E1N0YgLyog
SGVhcEhlbHBlclBvb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyREE3NzgzMThFMjU5OTkwMDY2
RkNCNiAvKiBIZWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkFEODkzMkIxN0UzODY4
RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUz
MzlFQzkxQkI0QjQ2MDAwNTRGMDA1IC8qIEhlYXBPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC02NDg3LDcgKzY0OTUsNyBAQAogCQkJCUE1MTNFNUNCMTg1Rjk2MjQwMDdFOTVBRCAvKiBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTIxMTg3QjdCODYw
MDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUx
M0U1QzcxODVGOTQ0NjAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBNTg0MEUyOTE4N0NBNUU2MDA4NDNCMTAgLyogaW5saW5lLWFuZC1taW5pZnkt
c3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkzMjFC
RDE4Mjc5MDAxQUE0MTMgLyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlw
dHMucHkgaW4gSGVhZGVycyAqLywKIAkJCQkxNDhBN0JGMDFCODI5NzVBMDAyRDkxNTcgLyogSW5s
aW5lQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1NjE3RjBCNzFDMDBBQkIy
MTcgLyogSW5saW5lQ2FsbEZyYW1lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUU0NUEyNzE4
QTFCMjU5MDAyNkQ4OEYgLyogSW5wdXRDdXJzb3IuaCBpbiBIZWFkZXJzICovLApAQCAtNjYwNSw3
ICs2NjEzLDYgQEAKIAkJCQk4NkUzQzYxNDE2N0JBQkQ3MDA2RDc2MEEgLyogSlNFeHBvcnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3QjRBQ0FGMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1h
Y3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUYxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
RmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJE
MzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NkYwMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Zsb2F0NjRBcnJheS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUYwRTE2RjVDRDAwQjM0NDYwIC8qIEpTRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MjAyOEJBMTc5NzYwM0QwMDk4MDI4QyAvKiBKU0Z1
bmN0aW9uSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjE0LDYgKzY2MjEsNyBAQAogCQkJ
CTBGMkI2NkYzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjQxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQjY2RjUxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyog
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMkI2NkY2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5N0UwN0FBMUI4RkNGQjkw
MDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0NDYwIC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTY2NDYsNyArNjY1NCw3IEBACiAJCQkJMkE0QkI3RjMxOEE0MTE3OTAwOEEwRkNE
IC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzQy
MTdDQkU4RUIwMEMzRTY0MyAvKiBKU01hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0REVGOTYx
ODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1
ODQwRTJCMTg3Q0E3NUIwMDg0M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovLAorCQkJCTk5
NTlFOTJEMUJEMTdGQTQwMDFBQTQxMyAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUUz
RDIzOUM5MUI4MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzE4Q0JDMTFCOEFFRjUxMDBBMjkyOUQgLyogSlNNb2R1bGVOYW1lc3BhY2VP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOURBNEE3MUI3RThCN0MwMDg0RjMzQSAvKiBK
U01vZHVsZVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjYwLDcgKzY2NjgsNiBAQAogCQkJ
CTdDMTg0RTFCMTdCRURCRDMwMDdDQjYzQSAvKiBKU1Byb21pc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDMTg0RTIzMTdCRUUyNDAwMDdDQjYzQSAvKiBKU1Byb21pc2VDb25zdHJ1Y3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0MwMDhDREIxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURl
ZmVycmVkLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI0RkI3NDFCQzg0MzE0MDAyNUNBNUEgLyog
RlRMTGF6eVNsb3dQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUxRjE3QkVFMjJFMDA3
Q0I2M0EgLyogSlNQcm9taXNlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTA1QUJE
NjE5NjFERjI0MDAzNDE3NTAgLyogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC02Njg4LDYgKzY2OTUsNyBAQAogCQkJCTBGMkI2NkZC
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMkI2NkZEMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlQcm90b3R5
cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGRjE3QjZCNUFCMDBBN0FFM0YgLyogSlNU
eXBlZEFycmF5cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREVBN0UyNDUxQkJDNjc3RjAwRDc4NDQw
IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MDdE
MjlFMEU4NzFFNUUwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCNjcwMjE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQjY3MDMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDMyQXJyYXkuaCBpbiBIZWFk
ZXJzICovLApAQCAtNjk2Nyw3ICs2OTc1LDYgQEAKIAkJCQkxNDE0MkU1MTFCNzk2RUNFMDBGNEJG
NEIgLyogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2ludGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjk2M0IzODEzRkM2RkU5MDAwMkQ5QjIgLyogVmFsdWVQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjFDM0REQTFCQkNFMDlFMDBFNTIzRTQgLyogQ2VsbFN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjQyNkE0ODE0NjBDQkIzMDAxMzFGOEYgLyogVmFsdWVSZWNvdmVyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzlFRTBDMDAxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxl
RW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkM3MzUxMUFDOUY5OUYwMEJFMTY4
MiAvKiBWYXJpYWJsZVdyaXRlRmlyZURldGFpbC5oIGluIEhlYWRlcnMgKi8sCkBAIC02OTc5LDYg
KzY5ODYsNyBAQAogCQkJCTdCMDI0NzU1MUI4NjgyREQwMDU0MjQ0MCAvKiBXQVNNQ29uc3RhbnRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QkM1NDdEMzFCNjk1OUExMDA5NTlCNTggLyogV0FTTUZv
cm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0IyRTAxMEUxQjk3QUE2OTAwRUY1RDVDIC8qIFdB
U01GdW5jdGlvbkNvbXBpbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjgzMjlCRjFCQjIxRkUz
MDA2NDlBNkUgLyogV0FTTUZ1bmN0aW9uTExWTUlSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3QjAyNDc1NzFCODY4MkU0MDA1NDI0NDAgLyogV0FTTUZ1bmN0aW9uUGFyc2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QjAyNDc1OTFCODY4RUI3MDA1NDI0NDAgLyogV0FTTUZ1bmN0aW9u
U3ludGF4Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0IzOUY3NkUxQjYyREUzMjAwMzYw
RkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNzAwNiw3ICs3MDE0
LDcgQEAKIAkJCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRl
QmFycmllclN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFE
NjQ5RiAvKiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1ODQwRTJBMTg3Q0E3
NTkwMDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyRTFCRDE3RkE0
MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUxNTM5QjkxMkRDOTk0NTAw
RUY3QUM0IC8qIFlhcnIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg1MTJEQkEzMzcwMEE5
RkU3QiAvKiBZYXJySW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg3MTJE
QkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmggaW4gSGVhZGVycyAqLywKQEAgLTc3NTgsNiArNzc2
Niw3IEBACiAJCQkJMEZEMTIwMkYxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEMTIwMzMxQThDODVCRDAwMEY1MjgwIC8qIEZUTEpTQ2Fs
bFZhcmFyZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjI3NzREQUExQjhENEIxOTAwMDZGMDVB
IC8qIEZUTEpTVGFpbENhbGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZCNEZCNzMxQkM4NDMx
NDAwMjVDQTVBIC8qIEZUTExhenlTbG93UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhG
MkI5NTE3MkUwNEEwMDA3REJEQTUgLyogRlRMTGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkNFRkFERjE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFQTBBMEYxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9MTFZNLmNwcCBp
biBTb3VyY2VzICovLApAQCAtNzc5MSw2ICs3ODAwLDcgQEAKIAkJCQkxNDJFMzEzNTEzNEZGMEE2
MDBBRkFEQjUgLyogSGFuZGxlU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkUzMTM3MTM0
RkYwQTYwMEFGQURCNSAvKiBIYW5kbGVTdGFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEJB
N0E5NzEzQUFERkY4MDA1QjdDMkMgLyogSGVhcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjMy
QkQxMDFCQjM0RjE5MDA5M0E1N0YgLyogSGVhcEhlbHBlclBvb2wuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzI0RDMxRTIxNjFDRDY5NTAwMkFBNERCIC8qIEhlYXBTdGF0aXN0aWNzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUMyRTUyNkJEMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkU3QkE2MEYxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJp
Zmllci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTc5NDgsNiArNzk1OCw3IEBACiAJCQkJMEYyQjY2
RkExN0I2QjVBQjAwQTdBRTNGIC8qIEpTVHlwZWRBcnJheUNvbnN0cnVjdG9ycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjJCNjZGQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNUeXBlZEFycmF5UHJv
dG90eXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZGRTE3QjZCNUFCMDBBN0FFM0Yg
LyogSlNUeXBlZEFycmF5cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlERUE3RTI0NDFCQkM2Nzcy
MDBENzg0NDAgLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NkUzQzYxQTE2N0JBQkVFMDA2RDc2MEEgLyogSlNWYWx1ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTE0QkQ1QTMyMEEzRTkxRjYwMEJBRjU5QyAvKiBKU1ZhbHVlUmVmLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg2RTNDNjFDMTY3QkFCRUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5l
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC04MDIxLDcgKzgwMzIsNiBAQAogCQkJCTBGOTgyMDYwMTZC
RkUzODEwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTU3NDJGNjUwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTVDRDQ1NzYwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJREVBN0UyNDQxQkJDNjc3MjAwRDc4NDQwIC8qIEpTVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTVBQjgzNTYwREE0M0MzMDAw
QkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjcyOUFEMTY2
QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRjcyOUFFMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTgwOTgsNyArODEwOCw2IEBACiAJCQkJMTQ0NjlERUIxMDdFQzdFNzAwNjUw
NDQ2IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUMwRUM2
MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDQ2OURFQzEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTBGQjRGQjczMUJDODQzMTQwMDI1Q0E1QSAvKiBGVExMYXp5U2xv
d1BhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAwNjUwNDQ2IC8q
IFN0cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzM1RjI0RDEyRTY3NjVC
MDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtODEzMCw3ICs4MTM5LDYgQEAKIAkJCQkwRkY0Mjc0MDE1OEVCRThCMDA0Q0I5RkYgLyog
dWRpczg2X2RlY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NDMxNThFQkU5MTAwNENC
OUZGIC8qIHVkaXM4Nl9pbnB1dC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NEQxNThFQkZF
NjAwNENCOUZGIC8qIHVkaXM4Nl9pdGFiX2hvbGRlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYz
MkJEMTAxQkIzNEYxOTAwOTNBNTdGIC8qIEhlYXBIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRjQyNzQ1MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfc3luLWF0dC5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZGNDI3NDYxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9zeW4taW50
ZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQ3MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlz
ODZfc3luLmMgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdpbi5j
bWFrZQppbmRleCA2YTdhZjBkYzY2ZWI3YTcxYmQzZjkxZTczNTQxY2M0MmM4MTAxYjY1Li4wNGZh
NWFkMDYzNGZmMzY4NjJmMDRhZmY0NTI0ZjQyY2VjYzA2NTg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0zMiw4ICszMiw3IEBAIGZpbGUoTUFLRV9ESVJFQ1RP
UlkgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29y
ZSkKIHNldChKYXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NPTU1BTkQgIiR7Q01BS0VfQklOQVJZ
X0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvcG9zdEJ1aWxkLmNtZCIpCiBmaWxl
KFdSSVRFICIke0phdmFTY3JpcHRDb3JlX1BPU1RfQlVJTERfQ09NTUFORH0iICJAeGNvcHkgL3kg
L2QgL2YgXCIke0RFUklWRURfU09VUkNFU19ESVJ9L0phdmFTY3JpcHRDb3JlLyouaFwiIFwiJHtE
RVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZVwiID5u
dWwgMj5udWxcbiIpCiBmaWxlKEFQUEVORCAiJHtKYXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NP
TU1BTkR9IiAiQHhjb3B5IC95IC9kIC9mIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvKi5oXCIgXCIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlXCIgPm51bCAyPm51bFxuIikKLWZpbGUoQVBQRU5EICIk
e0phdmFTY3JpcHRDb3JlX1BPU1RfQlVJTERfQ09NTUFORH0iICJAeGNvcHkgL3kgL2QgL2YgL3Mg
XCIke0RFUklWRURfU09VUkNFU19ESVJ9L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
LyouKlwiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2Ny
aXB0Q29yZVwiID5udWwgMj5udWxcbiIpCi1maWxlKEFQUEVORCAiJHtKYXZhU2NyaXB0Q29yZV9Q
T1NUX0JVSUxEX0NPTU1BTkR9IiAiQHhjb3B5IC95IC9kIC9mIC9zIFwiJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGluc1wiIFwiJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZVwiID5udWwgMj5u
dWxcbiIpCitmaWxlKEFQUEVORCAiJHtKYXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NPTU1BTkR9
IiAiQHhjb3B5IC95IC9kIC9mIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzLyouKlwiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVy
cy9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzXCIgPm51bCAyPm51bFxuIikKIGZvcmVhY2ggKF9kaXJl
Y3RvcnkgJHtKYXZhU2NyaXB0Q29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNUT1JJRVN9KQog
ICAgIGZpbGUoQVBQRU5EICIke0phdmFTY3JpcHRDb3JlX1BPU1RfQlVJTERfQ09NTUFORH0iICJA
eGNvcHkgL3kgL2QgL2YgXCIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vJHtfZGlyZWN0b3J5fS8qLmhc
IiBcIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENv
cmVcIiA+bnVsIDI+bnVsXG4iKQogZW5kZm9yZWFjaCAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvY3NzbWluLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvY3NzbWluLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwNjQwZWIyODRiYWRkNGY1YzgyZTcxYTNmY2Fj
NmQ4YTcxZTMwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9jc3NtaW4ucHkKQEAgLTAsMCArMSw0NCBAQAorIyEvdXNyL2Jpbi9weXRob24KKworIyBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHJlCisKK2RlZiBjc3Nt
aW5pZnkoY3NzKToKKyAgICBydWxlcyA9ICgKKyAgICAgICAgKHIiXC9cKi4qP1wqXC8iLCAiIiks
ICAgICAgICAgICMgZGVsZXRlIGNvbW1lbnRzCisgICAgICAgIChyIlxuIiwgIiIpLCAgICAgICAg
ICAgICAgICAgICAjIGRlbGV0ZSBuZXcgbGluZXMKKyAgICAgICAgKHIiXHMrIiwgIiAiKSwgICAg
ICAgICAgICAgICAgICMgY2hhbmdlIG11bHRpcGxlIHNwYWNlcyB0byBvbmUgc3BhY2UKKyAgICAg
ICAgKHIiXHM/KFs7Ont9LCs+XSlccz8iLCByIlwxIiksICMgZGVsZXRlIHNwYWNlIHdoZXJlIGl0
IGlzIG5vdCBuZWVkZWQKKyAgICAgICAgKHIiO30iLCAifSIpICAgICAgICAgICAgICAgICAgICMg
Y2hhbmdlICc7fScgdG8gJ30nIGJlY2F1c2UgdGhlIHNlbWljb2xvbiBpcyBub3QgbmVlZGVkCisg
ICAgKQorCisgICAgY3NzID0gY3NzLnJlcGxhY2UoIlxyXG4iLCAiXG4iKQorICAgIGZvciBydWxl
IGluIHJ1bGVzOgorICAgICAgICBjc3MgPSByZS5jb21waWxlKHJ1bGVbMF0sIHJlLk1VTFRJTElO
RSB8IHJlLlVOSUNPREUgfCByZS5ET1RBTEwpLnN1YihydWxlWzFdLCBjc3MpCisgICAgcmV0dXJu
IGNzcworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIGltcG9ydCBzeXMKKyAgICBz
eXMuc3Rkb3V0LndyaXRlKGNzc21pbmlmeShzeXMuc3RkaW4ucmVhZCgpKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rv
ci1qc29uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTM2NjAzMThkZGNlM2JhNzhjYmIwNjk2
YTIxNzU4MTk2MGY5MTAxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5CkBAIC0wLDAgKzEs
NjkgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK2ltcG9ydCBnbG9iCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc3lz
CisKK2lmIGxlbihzeXMuYXJndikgPCAyOgorICAgIHByaW50KCJ1c2FnZTogJXMgW2pzb24gZmls
ZXMgb3IgZGlyZWN0b3J5IG9mIGpzb24gZmlsZXMgLi4uXSIgJSBvcy5wYXRoLmJhc2VuYW1lKHN5
cy5hcmd2WzBdKSkKKyAgICBzeXMuZXhpdCgxKQorCitmaWxlcyA9IFtdCitmb3IgYXJnIGluIHN5
cy5hcmd2WzE6XToKKyAgICBpZiBub3Qgb3MuYWNjZXNzKGFyZywgb3MuRl9PSyk6CisgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbigiRmlsZSBcIiVzXCIgbm90IGZvdW5kIiAlIGFyZykKKyAgICBlbGlm
IG9zLnBhdGguaXNkaXIoYXJnKToKKyAgICAgICAgZmlsZXMuZXh0ZW5kKGdsb2IuZ2xvYihvcy5w
YXRoLmpvaW4oYXJnLCAiKi5qc29uIikpKQorICAgIGVsc2U6CisgICAgICAgIGZpbGVzLmFwcGVu
ZChhcmcpCitmaWxlcy5zb3J0KCkKKworIyBUbyBrZWVwIGFzIGNsb3NlIHRvIHRoZSBvcmlnaW5h
bCBKU09OIGZvcm1hdHRpbmcgYXMgcG9zc2libGUsIGp1c3QKKyMgZHVtcCBlYWNoIEpTT04gaW5w
dXQgZmlsZSB1bm1vZGlmaWVkIGludG8gYW4gYXJyYXkgb2YgImRvbWFpbnMiLgorIyBWYWxpZGF0
ZSBlYWNoIGZpbGUgaXMgdmFsaWQgSlNPTiBhbmQgdGhhdCB0aGVyZSBpcyBhICJkb21haW4iIGtl
eS4KKworZmlyc3QgPSBUcnVlCitwcmludCgie1wiZG9tYWluc1wiOlsiKQorZm9yIGZpbGUgaW4g
ZmlsZXM6CisgICAgaWYgZmlyc3Q6CisgICAgICAgIGZpcnN0ID0gRmFsc2UKKyAgICBlbHNlOgor
ICAgICAgICBwcmludCgiLCIpCisKKyAgICBzdHJpbmcgPSBvcGVuKGZpbGUpLnJlYWQoKQorCisg
ICAgdHJ5OgorICAgICAgICBkaWN0aW9uYXJ5ID0ganNvbi5sb2FkcyhzdHJpbmcpCisgICAgICAg
IGlmIG5vdCAiZG9tYWluIiBpbiBkaWN0aW9uYXJ5OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCJGaWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWlucyBhIFwiZG9tYWluXCIga2V5LiIgJSBm
aWxlKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJG
aWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWluIHZhbGlkIEpTT046XG4iICUgZmlsZSkKKyAgICAg
ICAgcmFpc2UKKworICAgIHByaW50KHN0cmluZy5yc3RyaXAoKSkKK3ByaW50KCJdfSIpCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0
aW5zIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGZmNDE4NzNkYTJiNjVhNzcxMTRjZjVkNDFlODdhNGMwZDMwNjM3YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpz
LWJ1aWx0aW5zCkBAIC0wLDAgKzEsMzQzIEBACisjIS91c3IvYmluL3B5dGhvbgorIyBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgZmlsZWNtcAoraW1wb3J0IGZubWF0Y2gKK2lt
cG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3lzCitpbXBvcnQgZGF0
ZXRpbWUKK2ltcG9ydCBqc29uCisKK3BhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkK
K3BhcnNlci5hZGRfYXJndW1lbnQoJ2lucHV0X2ZpbGUnLCBuYXJncz0nKicsIGhlbHA9J0lucHV0
IEpTIGZpbGVzIHdoaWNoIGJ1aWx0aW5zIGdlbmVyYXRlZCBmcm9tJykKK3BhcnNlci5hZGRfYXJn
dW1lbnQoJy0taW5wdXQtZGlyZWN0b3J5JywgaGVscD0nQWxsIEpTIGZpbGVzIHdpbGwgYmUgdXNl
ZCBhcyBpbnB1dCBmcm9tIHRoaXMgZGlyZWN0b3J5LicpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCct
LW91dHB1dCcsIGhlbHA9J3BhdGggdG8gb3V0cHV0IGNwcCBvciBoIGZpbGUnKQorcGFyc2VyLmFk
ZF9hcmd1bWVudCgnLS1wcmVmaXgnLCBkZWZhdWx0PSdKU0MnLCBoZWxwPSdwcmVmaXggdXNlZCBm
b3IgcHVibGljIG1hY3JvcycpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW5hbWVzcGFjZScsIGRl
ZmF1bHQ9J0pTQycsIGhlbHA9J0MrKyBuYW1lc3BhY2UnKQorYXJncyA9IHBhcnNlci5wYXJzZV9h
cmdzKCkKKworY29weXJpZ2h0VGV4dCA9ICIiIiAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovXG4KKyIiIgorCitnZW5lcmF0b3JTdHJpbmcgPSAiLyogR2VuZXJhdGVkIGJ5
ICVzIGRvIG5vdCBoYW5kIGVkaXQuICovXG4iICUgb3MucGF0aC5iYXNlbmFtZShfX2ZpbGVfXykK
KworZnVuY3Rpb25IZWFkUmVnRXhwID0gcmUuY29tcGlsZShyIig/OmZ1bmN0aW9ufGNvbnN0cnVj
dG9yKVxzK1x3K1xzKlwoLio/XCkiLCByZS5NVUxUSUxJTkUgfCByZS5TKQorZnVuY3Rpb25OYW1l
UmVnRXhwID0gcmUuY29tcGlsZShyIig/OmZ1bmN0aW9ufGNvbnN0cnVjdG9yKVxzKyhcdyspXHMq
XCgiLCByZS5NVUxUSUxJTkUgfCByZS5TKQorZnVuY3Rpb25Jc0NvbnN0cnVjdG9yUmVnRXhwID0g
cmUuY29tcGlsZShyIl5jb25zdHJ1Y3RvciIsIHJlLk1VTFRJTElORSB8IHJlLlMpCitmdW5jdGlv
blBhcmFtZXRlckZpbmRlciA9IHJlLmNvbXBpbGUociJeKD86ZnVuY3Rpb258Y29uc3RydWN0b3Ip
XHMrKD86XHcrKVxzKlwoKCg/OlxzKlx3Kyk/XHMqKD86XHMqLFxzKlx3KykqKT9ccypcKSIsIHJl
Lk1VTFRJTElORSB8IHJlLlMpCisKK211bHRpbGluZUNvbW1lbnRSZWdFeHAgPSByZS5jb21waWxl
KHIiXC9cKi4qP1wqXC8iLCByZS5NVUxUSUxJTkUgfCByZS5TKQorc2luZ2xlTGluZUNvbW1lbnRS
ZWdFeHAgPSByZS5jb21waWxlKHIiXC9cLy4qP1xuIiwgcmUuTVVMVElMSU5FIHwgcmUuUykKKwor
ZGVmIGdldENvcHlyaWdodChzb3VyY2UpOgorICAgIGNvcHlyaWdodEJsb2NrID0gbXVsdGlsaW5l
Q29tbWVudFJlZ0V4cC5maW5kYWxsKHNvdXJjZSlbMF0KKyAgICBjb3B5cmlnaHRCbG9jayA9IGNv
cHlyaWdodEJsb2NrWzpjb3B5cmlnaHRCbG9jay5pbmRleCgiUmVkaXN0cmlidXRpb24iKV0KKyAg
ICBjb3B5UmlnaHRMaW5lcyA9IFtdCisKKyAgICBmb3IgbGluZSBpbiBjb3B5cmlnaHRCbG9jay5z
cGxpdCgiXG4iKToKKyAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiLyoiLCAiIikKKyAgICAg
ICAgbGluZSA9IGxpbmUucmVwbGFjZSgiKi8iLCAiIikKKyAgICAgICAgbGluZSA9IGxpbmUucmVw
bGFjZSgiKiIsICIiKQorICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCJDb3B5cmlnaHQiLCAi
IikKKyAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiY29weXJpZ2h0IiwgIiIpCisgICAgICAg
IGxpbmUgPSBsaW5lLnJlcGxhY2UoIihDKSIsICIiKQorICAgICAgICBsaW5lID0gbGluZS5yZXBs
YWNlKCIoYykiLCAiIikKKyAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQorICAgICAgICBpZiBs
ZW4obGluZSkgPT0gMDoKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgY29weVJpZ2h0
TGluZXMuYXBwZW5kKGxpbmUpCisgICAgCisgICAgcmV0dXJuIGxpc3Qoc2V0KGNvcHlSaWdodExp
bmVzKSkKKworY2xhc3MgRnVuY3Rpb24ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bmFtZSwgc291cmNlLCBpc0NvbnN0cnVjdG9yLCBwYXJhbWV0ZXJzKToKKyAgICAgICAgc2VsZi5u
YW1lID0gbmFtZQorICAgICAgICBzZWxmLnNvdXJjZSA9IHNvdXJjZQorICAgICAgICBzZWxmLmlz
Q29uc3RydWN0b3IgPSBpc0NvbnN0cnVjdG9yCisgICAgICAgIHNlbGYucGFyYW1ldGVycyA9IHBh
cmFtZXRlcnMKKworICAgIGRlZiBtYW5nbGVOYW1lKHNlbGYsIG9iamVjdCk6CisgICAgICAgIHFO
YW1lID0gb2JqZWN0ICsgIi4iICsgc2VsZi5uYW1lCisgICAgICAgIG1hbmdsZWROYW1lID0gIiIK
KyAgICAgICAgaSA9IDAKKyAgICAgICAgd2hpbGUgaSA8IGxlbihxTmFtZSk6CisgICAgICAgICAg
ICBpZiBxTmFtZVtpXSA9PSAnLic6CisgICAgICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5n
bGVkTmFtZSArIHFOYW1lW2kgKyAxXS51cHBlcigpCisgICAgICAgICAgICAgICAgaSA9IGkgKyAx
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xl
ZE5hbWUgKyBxTmFtZVtpXQorICAgICAgICAgICAgaSA9IGkgKyAxCisgICAgICAgIGlmIHNlbGYu
aXNDb25zdHJ1Y3RvcjoKKyAgICAgICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xlZE5hbWUgKyAi
Q29uc3RydWN0b3IiCisgICAgICAgIHJldHVybiBtYW5nbGVkTmFtZQorCitkZWYgZ2V0RnVuY3Rp
b25zKHNvdXJjZSk6CisKKyAgICBzb3VyY2UgPSBtdWx0aWxpbmVDb21tZW50UmVnRXhwLnN1Yigi
LyoqLyIsIHNpbmdsZUxpbmVDb21tZW50UmVnRXhwLnN1YigiLy9cbiIsIHNvdXJjZSkpCisKKyAg
ICBtYXRjaGVzID0gWyBmIGZvciBmIGluIGZ1bmN0aW9uSGVhZFJlZ0V4cC5maW5kaXRlcihzb3Vy
Y2UpXQorICAgIGZ1bmN0aW9uQm91bmRzID0gW10KKyAgICBzdGFydCA9IDAKKyAgICBlbmQgPSAw
CisgICAgZm9yIG1hdGNoIGluIG1hdGNoZXM6CisgICAgICAgIHN0YXJ0ID0gbWF0Y2guc3RhcnQo
KQorICAgICAgICBpZiBzdGFydCA8IGVuZDoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
IGVuZCA9IG1hdGNoLmVuZCgpCisgICAgICAgIHdoaWxlIHNvdXJjZVtlbmRdICE9ICd7JzoKKyAg
ICAgICAgICAgIGVuZCA9IGVuZCArIDEKKyAgICAgICAgZGVwdGggPSAxCisgICAgICAgIGVuZCA9
IGVuZCArIDEKKyAgICAgICAgd2hpbGUgZGVwdGggPiAwOgorICAgICAgICAgICAgaWYgc291cmNl
W2VuZF0gPT0gJ3snOgorICAgICAgICAgICAgICAgIGRlcHRoID0gZGVwdGggKyAxCisgICAgICAg
ICAgICBlbGlmIHNvdXJjZVtlbmRdID09ICd9JzoKKyAgICAgICAgICAgICAgICBkZXB0aCA9IGRl
cHRoIC0gMQorICAgICAgICAgICAgZW5kID0gZW5kICsgMQorICAgICAgICBmdW5jdGlvbkJvdW5k
cy5hcHBlbmQoKHN0YXJ0LCBlbmQpKQorCisgICAgZnVuY3Rpb25zID0gW3NvdXJjZVtzdGFydDpl
bmRdLnN0cmlwKCkgZm9yIChzdGFydCwgZW5kKSBpbiBmdW5jdGlvbkJvdW5kc10KKyAgICByZXN1
bHQgPSBbXQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAgIGZ1bmN0aW9u
ID0gbXVsdGlsaW5lQ29tbWVudFJlZ0V4cC5zdWIoIiIsIGZ1bmN0aW9uKQorICAgICAgICBmdW5j
dGlvbk5hbWUgPSBmdW5jdGlvbk5hbWVSZWdFeHAuZmluZGFsbChmdW5jdGlvbilbMF0KKyAgICAg
ICAgZnVuY3Rpb25Jc0NvbnN0cnVjdG9yID0gZnVuY3Rpb25Jc0NvbnN0cnVjdG9yUmVnRXhwLm1h
dGNoKGZ1bmN0aW9uKSAhPSBOb25lCisgICAgICAgIGZ1bmN0aW9uUGFyYW1ldGVycyA9IGZ1bmN0
aW9uUGFyYW1ldGVyRmluZGVyLmZpbmRhbGwoZnVuY3Rpb24pWzBdLnNwbGl0KCcsJykKKyAgICAg
ICAgaWYgbGVuKGZ1bmN0aW9uUGFyYW1ldGVyc1swXSkgPT0gMDoKKyAgICAgICAgICAgIGZ1bmN0
aW9uUGFyYW1ldGVycyA9IFtdCisKKyAgICAgICAgcmVzdWx0LmFwcGVuZChGdW5jdGlvbihmdW5j
dGlvbk5hbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbklzQ29uc3RydWN0b3IsIGZ1bmN0aW9uUGFyYW1l
dGVycykpCisgICAgcmV0dXJuIHJlc3VsdAorCitkZWYgd3JpdGVJbmNsdWRlRGlyZWN0aXZlcyh3
cml0ZXIsIGhlYWRlck5hbWVzKToKKyAgICBmb3IgaGVhZGVyTmFtZSBpbiBoZWFkZXJOYW1lczoK
KyAgICAgICAgd3JpdGVyLndyaXRlKCIjaW5jbHVkZSAiICsgaGVhZGVyTmFtZSArICJcbiIpCisK
K2RlZiBnZW5lcmF0ZUNvZGUoc291cmNlKToKKyAgICBpbnB1dEZpbGUgPSBvcGVuKHNvdXJjZSwg
InIiKQorICAgIGJhc2VOYW1lID0gb3MucGF0aC5iYXNlbmFtZShzb3VyY2UpLnJlcGxhY2UoIi5q
cyIsICIiKQorICAgIAorICAgIHNvdXJjZSA9ICIiCisgICAgZm9yIGxpbmUgaW4gaW5wdXRGaWxl
OgorICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyBsaW5lCisgICAgCisgICAgaWYgc3lzLnBsYXRm
b3JtID09ICJjeWd3aW4iOgorICAgICAgICBzb3VyY2UgPSBzb3VyY2UucmVwbGFjZSgiXHJcbiIs
ICJcbiIpCisgICAgcmV0dXJuIChiYXNlTmFtZSwgZ2V0RnVuY3Rpb25zKHNvdXJjZSksIGdldENv
cHlyaWdodChzb3VyY2UpKQorCitidWlsdGlucyA9IFtdCitjb3B5cmlnaHRzID0gW10KKyhvdXRw
dXRfYmFzZSwgXykgPSBvcy5wYXRoLnNwbGl0ZXh0KGFyZ3Mub3V0cHV0KQorCitpZiBhcmdzLmlu
cHV0X2RpcmVjdG9yeToKKyAgICBmb3IgZmlsZSBpbiBvcy5saXN0ZGlyKGFyZ3MuaW5wdXRfZGly
ZWN0b3J5KToKKyAgICAgICAgYXJncy5pbnB1dF9maWxlLmFwcGVuZChvcy5wYXRoLmpvaW4oYXJn
cy5pbnB1dF9kaXJlY3RvcnksIGZpbGUpKQorCitmb3IgZmlsZSBpbiBhcmdzLmlucHV0X2ZpbGU6
CisgICAgaWYgZm5tYXRjaC5mbm1hdGNoKGZpbGUsICcqLmpzJyk6CisgICAgICAgIChiYXNlTmFt
ZSwgZnVuY3Rpb25zLCBvYmplY3RDb3B5cmlnaHRzKSA9IGdlbmVyYXRlQ29kZShmaWxlKQorICAg
ICAgICBjb3B5cmlnaHRzLmV4dGVuZChvYmplY3RDb3B5cmlnaHRzKQorICAgICAgICBidWlsdGlu
cy5hcHBlbmQoKGJhc2VOYW1lLCBmdW5jdGlvbnMpKQorbmFtZXNwYWNlID0gYXJncy5uYW1lc3Bh
Y2UKK21hY3JvUHJlZml4ID0gYXJncy5wcmVmaXgKK3Njb3BlTmFtZSA9IG9zLnBhdGguc3BsaXRl
eHQob3MucGF0aC5iYXNlbmFtZShhcmdzLm91dHB1dCkpWzBdCitpbmNsdWRlR3VhcmQgPSBzY29w
ZU5hbWUgKyAiX0giCitoZWFkZXJOYW1lID0gc2NvcGVOYW1lICsgIi5oIgorCitoZWFkZXJJbmNs
dWRlcyA9IFsiXCJCdWlsdGluVXRpbHMuaFwiIl0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2Ug
WyI8YnVpbHRpbnMvQnVpbHRpblV0aWxzLmg+Il0KK2NvbnRlbnRJbmNsdWRlcyA9IFsiXCJCdWls
dGluRXhlY3V0YWJsZXMuaFwiIiwgIlwiRXhlY3V0YWJsZS5oXCIiLCAiXCJKU0NlbGxJbmxpbmVz
LmhcIiIsICJcIlZNLmhcIiJdIGlmIG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNlIFsiPHJ1bnRpbWUv
RXhlY3V0YWJsZS5oPiIsICI8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+IiwgIjxydW50aW1l
L0pTQ0pTVmFsdWVJbmxpbmVzLmg+IiwgIjxydW50aW1lL0pTQ2VsbElubGluZXMuaD4iLCAiPHJ1
bnRpbWUvVk0uaD4iLCAiXCJXZWJDb3JlSlNDbGllbnREYXRhLmhcIiJdCisKK2NvcHlyaWdodHMg
PSBsaXN0KHNldChjb3B5cmlnaHRzKSkKKworY29weXJpZ2h0Qm9keSA9ICIiCitmb3IgY29weXJp
Z2h0IGluIGNvcHlyaWdodHM6CisgICAgY29weXJpZ2h0Qm9keSA9IGNvcHlyaWdodEJvZHkgKyIg
KiBDb3B5cmlnaHQgKEMpICIgKyBjb3B5cmlnaHQgKyAiXG4iCisKK2J1aWx0aW5zSGVhZGVyID0g
b3BlbihvdXRwdXRfYmFzZSArICIuaC50bXAiLCAidyIpCitidWlsdGluc0ltcGxlbWVudGF0aW9u
ID0gb3BlbihvdXRwdXRfYmFzZSArICIuY3BwLnRtcCIsICJ3IikKK2NvcHlyaWdodFRleHQgPSAi
LypcbiIgKyBjb3B5cmlnaHRCb2R5ICsgY29weXJpZ2h0VGV4dAorYnVpbHRpbnNIZWFkZXIud3Jp
dGUoIiIiJXMKKyVzCisKKyNpZm5kZWYgJXMKKyNkZWZpbmUgJXMKKworIiIiICUgKGdlbmVyYXRv
clN0cmluZywgY29weXJpZ2h0VGV4dCwgaW5jbHVkZUd1YXJkLCBpbmNsdWRlR3VhcmQpKQorCit3
cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSGVhZGVyLCBoZWFkZXJJbmNsdWRlcykKKwor
YnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCituYW1lc3BhY2UgSlNDIHsKKyAgICBjbGFzcyBGdW5j
dGlvbkV4ZWN1dGFibGU7Cit9CisKK25hbWVzcGFjZSAlcyB7CisKKyIiIiAlIG5hbWVzcGFjZSkK
KworY29kZVJlZmVyZW5jZXMgPSBbXQorCitmb3IgKG9iamVjdE5hbWUsIGZ1bmN0aW9ucykgaW4g
YnVpbHRpbnM6CisgICAgcHJpbnQoIkdlbmVyYXRpbmcgYmluZGluZ3MgZm9yIHRoZSAlcyBidWls
dGluLiIgJSBvYmplY3ROYW1lKQorICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIvKiAlcyBmdW5j
dGlvbnMgKi9cbiIgJSBvYmplY3ROYW1lKQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6
CisgICAgICAgIG5hbWUgPSBmdW5jdGlvbi5uYW1lCisgICAgICAgIG1hbmdsZWROYW1lID0gZnVu
Y3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKQorICAgICAgICBtYW5nbGVkTmFtZSA9IG1hbmds
ZWROYW1lWzBdLmxvd2VyKCkgKyBtYW5nbGVkTmFtZVsxOl0gKyAiQ29kZSIKKyAgICAgICAgY29k
ZVJlZmVyZW5jZXMuYXBwZW5kKChtYW5nbGVkTmFtZSwgZnVuY3Rpb24pKQorICAgICAgICBidWls
dGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IGNoYXIqIHNfJXM7XG4iICUgbWFuZ2xlZE5h
bWUpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgaW50IHNfJXNM
ZW5ndGg7XG4iICUgbWFuZ2xlZE5hbWUpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJl
eHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5O1xu
IiAlIG1hbmdsZWROYW1lKQorICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIpCisgICAgYnVp
bHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF8lc19CVUlMVElOKG1hY3JvKSBc
XFxuIiAlIChtYWNyb1ByZWZpeCwgb2JqZWN0TmFtZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBlcigp
KSkKKyAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgorICAgICAgICBtYW5nbGVkTmFtZSA9
IGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkKKyAgICAgICAgYnVpbHRpbnNIZWFkZXIu
d3JpdGUoIiAgICBtYWNybyglcywgJXMsICVkKSBcXFxuIiAlIChmdW5jdGlvbi5uYW1lLCBtYW5n
bGVkTmFtZSwgbGVuKGZ1bmN0aW9uLnBhcmFtZXRlcnMpKSkKKyAgICBidWlsdGluc0hlYWRlci53
cml0ZSgiXG4iKQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAgIGJ1aWx0
aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0JVSUxUSU5fJXMgMVxuIiAlIChtYWNyb1ByZWZp
eCwgZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKS51cHBlcigpKSkKKyAgICBidWlsdGlu
c0hlYWRlci53cml0ZSgiXG5cbiIpCituYW1lcyA9IFtdCitidWlsdGluc0hlYWRlci53cml0ZSgi
I2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU4obWFjcm8pXFxcbiIgJSBtYWNyb1ByZWZpeCkKK2Zv
ciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgorICAgIGJ1aWx0
aW5zSGVhZGVyLndyaXRlKCIgICAgbWFjcm8oJXMsICVzLCBzXyVzTGVuZ3RoKSBcXFxuIiAlIChj
b2RlUmVmZXJlbmNlLCBmdW5jdGlvbi5uYW1lLCBjb2RlUmVmZXJlbmNlKSkKKyAgICBuYW1lcy5h
cHBlbmQoZnVuY3Rpb24ubmFtZSkKKworYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuXG4iKQorYnVp
bHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUobWFjcm8pIFxcXG4iICUgbWFjcm9QcmVmaXgpCitmb3IgbmFtZSBpbiBzb3J0ZWQoc2V0KG5h
bWVzKSk6CisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcykgXFxcbiIgJSBu
YW1lKQorYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCisKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElO
X0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAorICAg
IEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsK
KworJXNfRk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCisjdW5kZWYg
REVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgorCisjZGVmaW5lICVzX0JVSUxUSU5fRVhJU1RTKG5h
bWUpIGRlZmluZWQgJXNfQlVJTFRJTl8gIyMgbmFtZQorCit9CisKKyNlbmRpZiAvLyAlcworCisi
IiIgJSAobWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBtYWNyb1ByZWZpeCwgaW5jbHVkZUd1YXJk
KSkKKworYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIlcworJXMKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiJXMiCisKKyIiIiAgJSAoZ2VuZXJhdG9yU3RyaW5nLCBj
b3B5cmlnaHRUZXh0LCBoZWFkZXJOYW1lKSkKKword3JpdGVJbmNsdWRlRGlyZWN0aXZlcyhidWls
dGluc0ltcGxlbWVudGF0aW9uLCBjb250ZW50SW5jbHVkZXMpCisKK2J1aWx0aW5zSW1wbGVtZW50
YXRpb24ud3JpdGUoIiIiCituYW1lc3BhY2UgJXMgeworCisiIiIgICUgKG5hbWVzcGFjZSkpCisK
KworCitmb3IgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKKyAg
ICBzb3VyY2UgPSBmdW5jdGlvbi5zb3VyY2UKKyAgICBzb3VyY2UgPSAiKGZ1bmN0aW9uICIgKyBz
b3VyY2Vbc291cmNlLmluZGV4KCIoIik6XSArICIpIgorICAgIGxpbmVzID0ganNvbi5kdW1wcyhz
b3VyY2UpWzE6LTFdLnNwbGl0KCJcXG4iKQorICAgIHNvdXJjZUxlbmd0aCA9IGxlbihzb3VyY2Up
CisgICAgc291cmNlID0gIiIKKyAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgc291cmNl
ID0gc291cmNlICsgKCIgICAgXCIlc1xcblwiIFxcXG4iICUgbGluZSkKKyAgICBidWlsdGluc0lt
cGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBjaGFyKiBzXyVzID1cbiVzO1xuXG4iICUgKGNvZGVS
ZWZlcmVuY2UsIHNvdXJjZSkpCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29u
c3QgaW50IHNfJXNMZW5ndGggPSAlZDtcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBzb3VyY2VMZW5n
dGggKyAxKSkgIyArIDEgZm9yIFxuCisgICAgY29uc3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0
cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdCIKKyAgICBpZiBmdW5jdGlvbi5pc0NvbnN0cnVj
dG9yOgorICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2FuQ29uc3RydWN0IgorICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xuXG4iICUgKGNv
ZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KKworYnVpbHRpbnNJ
bXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKKyNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9S
KGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCitKU0M6OkZ1bmN0aW9u
RXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXFwKKyIiIik7CisK
K2lmIChuYW1lc3BhY2UgPT0gIkpTQyIpOgorICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3Jp
dGUoIiIie1xcCisgICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMj
RXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUj
I1NvdXJjZSgpKTsgXFwKKyIiIikKK2Vsc2U6CisgICAgYnVpbHRpbk5hbWUgPSBzY29wZU5hbWVb
MF0ubG93ZXIoKSArIHNjb3BlTmFtZVsxOl0KKyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndy
aXRlKCIiIntcXAorICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXFwKKyAgICByZXR1cm4gY2xpZW50RGF0
YS0+YnVpbHRpbkZ1bmN0aW9ucygpLiVzKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2
bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLiVzKCkuY29kZU5hbWUjI1NvdXJjZSgp
KTsgXFwKKyIiIiUgKGJ1aWx0aW5OYW1lLCBidWlsdGluTmFtZSkpCisKK2J1aWx0aW5zSW1wbGVt
ZW50YXRpb24ud3JpdGUoIiIifQorJXNfRk9SRUFDSF9CVUlMVElOKERFRklORV9CVUlMVElOX0dF
TkVSQVRPUikKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKK30KKworIiIiJSAobWFj
cm9QcmVmaXgpKQorCitidWlsdGluc0hlYWRlci5jbG9zZSgpCitidWlsdGluc0ltcGxlbWVudGF0
aW9uLmNsb3NlKCkKKworaWYgKG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuaCIp
KSBvciAobm90IGZpbGVjbXAuY21wKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsIG91dHB1dF9iYXNl
ICsgIi5oIiwgc2hhbGxvdz1GYWxzZSkpOgorICAgIGlmIChvcy5wYXRoLmV4aXN0cyhvdXRwdXRf
YmFzZSArICIuaCIpKToKKyAgICAgICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5oIikKKyAg
ICBvcy5yZW5hbWUob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiKQor
ZWxzZToKKyAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgudG1wIikKKworaWYgKG5vdCBv
cy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuY3BwIikpIG9yIChub3QgZmlsZWNtcC5jbXAo
b3V0cHV0X2Jhc2UgKyAiLmNwcC50bXAiLCBvdXRwdXRfYmFzZSArICIuY3BwIiwgc2hhbGxvdz1G
YWxzZSkpOgorICAgIGlmIChvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuY3BwIikpOgor
ICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmNwcCIpCisgICAgb3MucmVuYW1lKG91
dHB1dF9iYXNlICsgIi5jcHAudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmNwcCIpCitlbHNlOgorICAg
IG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuY3BwLnRtcCIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQt
c2NyaXB0cy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2lubGluZS1hbmQtbWlu
aWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MjAwYzg0ZWU5ZTY2
ZDMxYjZjYWVlY2I0NDY4MDcxMmU3MzdjNjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2Ny
aXB0cy5weQpAQCAtMCwwICsxLDgxIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBzY3JpcHQgaW5saW5lcyBh
bmQgbWluaWZpZXMgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIHNjcmlwdHMuCisjICAtIDxsaW5r
IGhyZWY9Ii4uLiIgcmVsPSJzdHlsZXNoZWV0Ij4gPT4gPHN0eWxlPi4uLjwvc3R5bGU+CisjICAt
IDxzY3JpcHQgc3JjPSIuLi4iPiAgICAgICAgICAgICAgICAgPT4gPHNjcmlwdD4uLi48L3Njcmlw
dD4KKworaW1wb3J0IGNzc21pbgoraW1wb3J0IGpzbWluCitpbXBvcnQgb3MucGF0aAoraW1wb3J0
IHJlCitpbXBvcnQgc3lzCisKKworZGVmIG1haW4oYXJndik6CisKKyAgICBpZiBsZW4oYXJndikg
PCAyOgorICAgICAgICBwcmludCgndXNhZ2U6ICVzIGlucHV0RmlsZSBvdXRwdXRGaWxlJyAlIGFy
Z3ZbMF0pCisgICAgICAgIHJldHVybiAxCisKKyAgICBpbnB1dEZpbGVOYW1lID0gYXJndlsxXQor
ICAgIG91dHB1dEZpbGVOYW1lID0gYXJndlsyXQorICAgIGltcG9ydHNEaXIgPSBvcy5wYXRoLmRp
cm5hbWUoaW5wdXRGaWxlTmFtZSkKKworICAgIGlucHV0RmlsZSA9IG9wZW4oaW5wdXRGaWxlTmFt
ZSwgJ3InKQorICAgIGlucHV0Q29udGVudCA9IGlucHV0RmlsZS5yZWFkKCkKKyAgICBpbnB1dEZp
bGUuY2xvc2UoKQorCisgICAgZGVmIGlubGluZShtYXRjaCwgbWluaWZpZXIsIHByZWZpeCwgcG9z
dGZpeCk6CisgICAgICAgIGltcG9ydEZpbGVOYW1lID0gbWF0Y2guZ3JvdXAoMSkKKyAgICAgICAg
ZnVsbFBhdGggPSBvcy5wYXRoLmpvaW4oaW1wb3J0c0RpciwgaW1wb3J0RmlsZU5hbWUpCisgICAg
ICAgIGlmIG5vdCBvcy5hY2Nlc3MoZnVsbFBhdGgsIG9zLkZfT0spOgorICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdGaWxlICVzIHJlZmVyZW5jZWQgaW4gJXMgbm90IGZvdW5kJyAlIChpbXBv
cnRGaWxlTmFtZSwgaW5wdXRGaWxlTmFtZSkpCisgICAgICAgIGltcG9ydEZpbGUgPSBvcGVuKGZ1
bGxQYXRoLCAncicpCisgICAgICAgIGltcG9ydENvbnRlbnQgPSBtaW5pZmllcihpbXBvcnRGaWxl
LnJlYWQoKSkKKyAgICAgICAgaW1wb3J0RmlsZS5jbG9zZSgpCisgICAgICAgIHJldHVybiAnJXMl
cyVzJyAlIChwcmVmaXgsIGltcG9ydENvbnRlbnQsIHBvc3RmaXgpCisKKyAgICBkZWYgaW5saW5l
U3R5bGVzaGVldChtYXRjaCk6CisgICAgICAgIHJldHVybiBpbmxpbmUobWF0Y2gsIGNzc21pbi5j
c3NtaW5pZnksICI8c3R5bGU+IiwgIjwvc3R5bGU+IikKKworICAgIGRlZiBpbmxpbmVTY3JpcHQo
bWF0Y2gpOgorICAgICAgICByZXR1cm4gaW5saW5lKG1hdGNoLCBqc21pbi5qc21pbiwgIjxzY3Jp
cHQ+IiwgIjwvc2NyaXB0PiIpCisKKyAgICBvdXRwdXRDb250ZW50ID0gcmUuc3ViKHInPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPVtcJyJdKFteXCciXSspW1wnIl0+JywgaW5saW5lU3R5bGVz
aGVldCwgaW5wdXRDb250ZW50KQorICAgIG91dHB1dENvbnRlbnQgPSByZS5zdWIocic8c2NyaXB0
IHNyYz1bXCciXShbXlwnIl0rKVtcJyJdPjwvc2NyaXB0PicsIGlubGluZVNjcmlwdCwgb3V0cHV0
Q29udGVudCkKKworICAgIG91dHB1dEZpbGUgPSBvcGVuKG91dHB1dEZpbGVOYW1lLCAndycpCisg
ICAgb3V0cHV0RmlsZS53cml0ZShvdXRwdXRDb250ZW50KQorICAgIG91dHB1dEZpbGUuY2xvc2Uo
KQorCisgICAgIyBUb3VjaCBvdXRwdXQgZmlsZSBkaXJlY3RvcnkgdG8gbWFrZSBzdXJlIHRoYXQg
WGNvZGUgd2lsbCBjb3B5CisgICAgIyBtb2RpZmllZCByZXNvdXJjZSBmaWxlcy4KKyAgICBpZiBz
eXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6CisgICAgICAgIG91dHB1dERpck5hbWUgPSBvcy5wYXRo
LmRpcm5hbWUob3V0cHV0RmlsZU5hbWUpCisgICAgICAgIG9zLnV0aW1lKG91dHB1dERpck5hbWUs
IE5vbmUpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihz
eXMuYXJndikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9qc21p
bi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2pzbWluLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgzZDJhNTBhYzk1ZDhhMGE3MDllNTNkZGRiN2I4YTU1ZGZhYmEzY2QKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9qc21pbi5weQpAQCAtMCwwICsxLDIz
OCBAQAorIyBUaGlzIGNvZGUgaXMgb3JpZ2luYWwgZnJvbSBqc21pbiBieSBEb3VnbGFzIENyb2Nr
Zm9yZCwgaXQgd2FzIHRyYW5zbGF0ZWQgdG8KKyMgUHl0aG9uIGJ5IEJhcnVjaCBFdmVuLiBJdCB3
YXMgcmV3cml0dGVuIGJ5IERhdmUgU3QuR2VybWFpbiBmb3Igc3BlZWQuCisjCisjIFRoZSBNSVQg
TGljZW5zZSAoTUlUKQorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgRGF2ZSBTdC5HZXJtYWluCisj
CisjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyMgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKyMgaW4gdGhl
IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp
b24gdGhlIHJpZ2h0cworIyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisjIGNvcGllcyBvZiB0aGUgU29mdHdh
cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworIyBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIwor
IyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZCBpbgorIyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBTb2Z0d2FyZS4KKyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyMgSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFksCisjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorIyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisjIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HIEZST00sCisjIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KKyMgVEhFIFNPRlRXQVJFLgorCisKK2ltcG9y
dCBzeXMKK2lzXzMgPSBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKQoraWYgaXNfMzoKKyAgICBp
bXBvcnQgaW8KK2Vsc2U6CisgICAgaW1wb3J0IFN0cmluZ0lPCisgICAgdHJ5OgorICAgICAgICBp
bXBvcnQgY1N0cmluZ0lPCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBjU3RyaW5n
SU8gPSBOb25lCisKKworX19hbGxfXyA9IFsnanNtaW4nLCAnSmF2YXNjcmlwdE1pbmlmeSddCitf
X3ZlcnNpb25fXyA9ICcyLjAuOScKKworCitkZWYganNtaW4oanMpOgorICAgICIiIgorICAgIHJl
dHVybnMgYSBtaW5pZmllZCB2ZXJzaW9uIG9mIHRoZSBqYXZhc2NyaXB0IHN0cmluZworICAgICIi
IgorICAgIGlmIG5vdCBpc18zOgorICAgICAgICBpZiBjU3RyaW5nSU8gYW5kIG5vdCBpc2luc3Rh
bmNlKGpzLCB1bmljb2RlKToKKyAgICAgICAgICAgICMgc3RyaW5ncyBjYW4gdXNlIGNTdHJpbmdJ
TyBmb3IgYSAzeCBwZXJmb3JtYW5jZQorICAgICAgICAgICAgIyBpbXByb3ZlbWVudCwgYnV0IHVu
aWNvZGUgKGluIHB5dGhvbjIpIGNhbm5vdAorICAgICAgICAgICAga2xhc3MgPSBjU3RyaW5nSU8u
U3RyaW5nSU8KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGtsYXNzID0gU3RyaW5nSU8uU3Ry
aW5nSU8KKyAgICBlbHNlOgorICAgICAgICBrbGFzcyA9IGlvLlN0cmluZ0lPCisgICAgaW5zID0g
a2xhc3MoanMpCisgICAgb3V0cyA9IGtsYXNzKCkKKyAgICBKYXZhc2NyaXB0TWluaWZ5KGlucywg
b3V0cykubWluaWZ5KCkKKyAgICByZXR1cm4gb3V0cy5nZXR2YWx1ZSgpCisKKworY2xhc3MgSmF2
YXNjcmlwdE1pbmlmeShvYmplY3QpOgorICAgICIiIgorICAgIE1pbmlmeSBhbiBpbnB1dCBzdHJl
YW0gb2YgamF2YXNjcmlwdCwgd3JpdGluZworICAgIHRvIGFuIG91dHB1dCBzdHJlYW0KKyAgICAi
IiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbnN0cmVhbT1Ob25lLCBvdXRzdHJlYW09Tm9u
ZSk6CisgICAgICAgIHNlbGYuaW5zID0gaW5zdHJlYW0KKyAgICAgICAgc2VsZi5vdXRzID0gb3V0
c3RyZWFtCisKKyAgICBkZWYgbWluaWZ5KHNlbGYsIGluc3RyZWFtPU5vbmUsIG91dHN0cmVhbT1O
b25lKToKKyAgICAgICAgaWYgaW5zdHJlYW0gYW5kIG91dHN0cmVhbToKKyAgICAgICAgICAgIHNl
bGYuaW5zLCBzZWxmLm91dHMgPSBpbnN0cmVhbSwgb3V0c3RyZWFtCisKKyAgICAgICAgc2VsZi5p
c19yZXR1cm4gPSBGYWxzZQorICAgICAgICBzZWxmLnJldHVybl9idWYgPSAnJworCisgICAgICAg
IGRlZiB3cml0ZShjaGFyKToKKyAgICAgICAgICAgICMgYWxsIG9mIHRoaXMgaXMgdG8gc3VwcG9y
dCBsaXRlcmFsIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCisgICAgICAgICAgICAjIHNpZ2gKKyAgICAg
ICAgICAgIGlmIGNoYXIgaW4gJ3JldHVybic6CisgICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5f
YnVmICs9IGNoYXIKKyAgICAgICAgICAgICAgICBzZWxmLmlzX3JldHVybiA9IHNlbGYucmV0dXJu
X2J1ZiA9PSAncmV0dXJuJworICAgICAgICAgICAgc2VsZi5vdXRzLndyaXRlKGNoYXIpCisgICAg
ICAgICAgICBpZiBzZWxmLmlzX3JldHVybjoKKyAgICAgICAgICAgICAgICBzZWxmLnJldHVybl9i
dWYgPSAnJworCisgICAgICAgIHJlYWQgPSBzZWxmLmlucy5yZWFkCisKKyAgICAgICAgc3BhY2Vf
c3RyaW5ncyA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJcCisgICAgICAgICJBQkNERUZH
SElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODlfJFxcIgorICAgICAgICBzdGFydGVycywgZW5k
ZXJzID0gJ3tbKCstJywgJ31dKSstIlwnJworICAgICAgICBuZXdsaW5lc3RhcnRfc3RyaW5ncyA9
IHN0YXJ0ZXJzICsgc3BhY2Vfc3RyaW5ncworICAgICAgICBuZXdsaW5lZW5kX3N0cmluZ3MgPSBl
bmRlcnMgKyBzcGFjZV9zdHJpbmdzCisgICAgICAgIGRvX25ld2xpbmUgPSBGYWxzZQorICAgICAg
ICBkb19zcGFjZSA9IEZhbHNlCisgICAgICAgIGVzY2FwZV9zbGFzaF9jb3VudCA9IDAKKyAgICAg
ICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBGYWxzZQorICAgICAgICBwcmV2aW91c19iZWZvcmVf
Y29tbWVudCA9ICcnCisgICAgICAgIGRvaW5nX211bHRpX2NvbW1lbnQgPSBGYWxzZQorICAgICAg
ICBpbl9yZSA9IEZhbHNlCisgICAgICAgIGluX3F1b3RlID0gJycKKyAgICAgICAgcXVvdGVfYnVm
ID0gW10KKworICAgICAgICBwcmV2aW91cyA9IHJlYWQoMSkKKyAgICAgICAgaWYgcHJldmlvdXMg
PT0gJ1xcJzoKKyAgICAgICAgICAgIGVzY2FwZV9zbGFzaF9jb3VudCArPSAxCisgICAgICAgIG5l
eHQxID0gcmVhZCgxKQorICAgICAgICBpZiBwcmV2aW91cyA9PSAnLyc6CisgICAgICAgICAgICBp
ZiBuZXh0MSA9PSAnLyc6CisgICAgICAgICAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBU
cnVlCisgICAgICAgICAgICBlbGlmIG5leHQxID09ICcqJzoKKyAgICAgICAgICAgICAgICBkb2lu
Z19tdWx0aV9jb21tZW50ID0gVHJ1ZQorICAgICAgICAgICAgICAgIHByZXZpb3VzID0gbmV4dDEK
KyAgICAgICAgICAgICAgICBuZXh0MSA9IHJlYWQoMSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgd3JpdGUocHJldmlvdXMpCisgICAgICAgIGVsaWYgbm90IHByZXZpb3VzOgor
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsaWYgcHJldmlvdXMgPj0gJyEnOgorICAgICAg
ICAgICAgaWYgcHJldmlvdXMgaW4gIidcIiI6CisgICAgICAgICAgICAgICAgaW5fcXVvdGUgPSBw
cmV2aW91cworICAgICAgICAgICAgd3JpdGUocHJldmlvdXMpCisgICAgICAgICAgICBwcmV2aW91
c19ub25fc3BhY2UgPSBwcmV2aW91cworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJldmlv
dXNfbm9uX3NwYWNlID0gJyAnCisgICAgICAgIGlmIG5vdCBuZXh0MToKKyAgICAgICAgICAgIHJl
dHVybgorCisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBuZXh0MiA9IHJlYWQoMSkKKyAg
ICAgICAgICAgIGlmIG5vdCBuZXh0MjoKKyAgICAgICAgICAgICAgICBsYXN0ID0gbmV4dDEuc3Ry
aXAoKQorICAgICAgICAgICAgICAgIGlmIG5vdCAoZG9pbmdfc2luZ2xlX2NvbW1lbnQgb3IgZG9p
bmdfbXVsdGlfY29tbWVudClcCisgICAgICAgICAgICAgICAgICAgIGFuZCBsYXN0IG5vdCBpbiAo
JycsICcvJyk6CisgICAgICAgICAgICAgICAgICAgIGlmIGluX3F1b3RlOgorICAgICAgICAgICAg
ICAgICAgICAgICAgd3JpdGUoJycuam9pbihxdW90ZV9idWYpKQorICAgICAgICAgICAgICAgICAg
ICB3cml0ZShsYXN0KQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiBkb2lu
Z19tdWx0aV9jb21tZW50OgorICAgICAgICAgICAgICAgIGlmIG5leHQxID09ICcqJyBhbmQgbmV4
dDIgPT0gJy8nOgorICAgICAgICAgICAgICAgICAgICBkb2luZ19tdWx0aV9jb21tZW50ID0gRmFs
c2UKKyAgICAgICAgICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCisgICAgICAgICAgICBlbGlm
IGRvaW5nX3NpbmdsZV9jb21tZW50OgorICAgICAgICAgICAgICAgIGlmIG5leHQxIGluICdcclxu
JzoKKyAgICAgICAgICAgICAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBGYWxzZQorICAg
ICAgICAgICAgICAgICAgICB3aGlsZSBuZXh0MiBpbiAnXHJcbic6CisgICAgICAgICAgICAgICAg
ICAgICAgICBuZXh0MiA9IHJlYWQoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBu
ZXh0MjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAg
ICAgICBpZiBwcmV2aW91c19iZWZvcmVfY29tbWVudCBpbiAnKX1dJzoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRvX25ld2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGVsaWYgcHJl
dmlvdXNfYmVmb3JlX2NvbW1lbnQgaW4gc3BhY2Vfc3RyaW5nczoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHdyaXRlKCdcbicpCisgICAgICAgICAgICBlbGlmIGluX3F1b3RlOgorICAgICAgICAg
ICAgICAgIHF1b3RlX2J1Zi5hcHBlbmQobmV4dDEpCisKKyAgICAgICAgICAgICAgICBpZiBuZXh0
MSA9PSBpbl9xdW90ZToKKyAgICAgICAgICAgICAgICAgICAgbnVtc2xhc2hlcyA9IDAKKyAgICAg
ICAgICAgICAgICAgICAgZm9yIGMgaW4gcmV2ZXJzZWQocXVvdGVfYnVmWzotMV0pOgorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgYyAhPSAnXFwnOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG51bXNsYXNoZXMgKz0gMQorICAgICAgICAgICAgICAgICAgICBpZiBudW1z
bGFzaGVzICUgMiA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGUgPSAnJwor
ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUoJycuam9pbihxdW90ZV9idWYpKQorICAgICAg
ICAgICAgZWxpZiBuZXh0MSBpbiAnXHJcbic6CisgICAgICAgICAgICAgICAgaWYgcHJldmlvdXNf
bm9uX3NwYWNlIGluIG5ld2xpbmVlbmRfc3RyaW5ncyBcCisgICAgICAgICAgICAgICAgICAgIG9y
IHByZXZpb3VzX25vbl9zcGFjZSA+ICd+JzoKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgMToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5leHQyIDwgJyEnOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5leHQyID0gcmVhZCgxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBuZXh0MjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgbmV4dDIgaW4gbmV3bGluZXN0YXJ0X3N0cmluZ3MgXAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvciBuZXh0MiA+ICd+JyBvciBuZXh0MiA9PSAnLyc6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvX25ld2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgbmV4dDEgPCAnIScgYW5kIG5vdCBpbl9y
ZToKKyAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNfbm9uX3NwYWNlIGluIHNwYWNlX3N0cmlu
Z3MgXAorICAgICAgICAgICAgICAgICAgICBvciBwcmV2aW91c19ub25fc3BhY2UgPiAnficpIFwK
KyAgICAgICAgICAgICAgICAgICAgYW5kIChuZXh0MiBpbiBzcGFjZV9zdHJpbmdzIG9yIG5leHQy
ID4gJ34nKToKKyAgICAgICAgICAgICAgICAgICAgZG9fc3BhY2UgPSBUcnVlCisgICAgICAgICAg
ICAgICAgZWxpZiBwcmV2aW91c19ub25fc3BhY2UgaW4gJy0rJyBhbmQgbmV4dDIgPT0gcHJldmlv
dXNfbm9uX3NwYWNlOgorICAgICAgICAgICAgICAgICAgICAjIHByb3RlY3QgYWdhaW5zdCArICsr
IG9yIC0gLS0gc2VxdWVuY2VzCisgICAgICAgICAgICAgICAgICAgIGRvX3NwYWNlID0gVHJ1ZQor
ICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5pc19yZXR1cm4gYW5kIG5leHQyID09ICcvJzoKKyAg
ICAgICAgICAgICAgICAgICAgIyByZXR1cm5pbmcgYSByZWdleC4uLgorICAgICAgICAgICAgICAg
ICAgICB3cml0ZSgnICcpCisgICAgICAgICAgICBlbGlmIG5leHQxID09ICcvJzoKKyAgICAgICAg
ICAgICAgICBpZiBkb19zcGFjZToKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQorICAg
ICAgICAgICAgICAgIGlmIGluX3JlOgorICAgICAgICAgICAgICAgICAgICBpZiBwcmV2aW91cyAh
PSAnXFwnIG9yIChub3QgZXNjYXBlX3NsYXNoX2NvdW50ICUgMikgb3IgbmV4dDIgaW4gJ2dpbXkn
OgorICAgICAgICAgICAgICAgICAgICAgICAgaW5fcmUgPSBGYWxzZQorICAgICAgICAgICAgICAg
ICAgICB3cml0ZSgnLycpCisgICAgICAgICAgICAgICAgZWxpZiBuZXh0MiA9PSAnLyc6CisgICAg
ICAgICAgICAgICAgICAgIGRvaW5nX3NpbmdsZV9jb21tZW50ID0gVHJ1ZQorICAgICAgICAgICAg
ICAgICAgICBwcmV2aW91c19iZWZvcmVfY29tbWVudCA9IHByZXZpb3VzX25vbl9zcGFjZQorICAg
ICAgICAgICAgICAgIGVsaWYgbmV4dDIgPT0gJyonOgorICAgICAgICAgICAgICAgICAgICBkb2lu
Z19tdWx0aV9jb21tZW50ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBwcmV2aW91cyA9IG5l
eHQxCisgICAgICAgICAgICAgICAgICAgIG5leHQxID0gbmV4dDIKKyAgICAgICAgICAgICAgICAg
ICAgbmV4dDIgPSByZWFkKDEpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgaW5fcmUgPSBwcmV2aW91c19ub25fc3BhY2UgaW4gJygsPTpbPyEmfCcgb3Igc2VsZi5p
c19yZXR1cm4gICMgbGl0ZXJhbCByZWd1bGFyIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAg
ICAgd3JpdGUoJy8nKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBkb19z
cGFjZToKKyAgICAgICAgICAgICAgICAgICAgZG9fc3BhY2UgPSBGYWxzZQorICAgICAgICAgICAg
ICAgICAgICB3cml0ZSgnICcpCisgICAgICAgICAgICAgICAgaWYgZG9fbmV3bGluZToKKyAgICAg
ICAgICAgICAgICAgICAgd3JpdGUoJ1xuJykKKyAgICAgICAgICAgICAgICAgICAgZG9fbmV3bGlu
ZSA9IEZhbHNlCisKKyAgICAgICAgICAgICAgICB3cml0ZShuZXh0MSkKKyAgICAgICAgICAgICAg
ICBpZiBub3QgaW5fcmUgYW5kIG5leHQxIGluICInXCIiOgorICAgICAgICAgICAgICAgICAgICBp
bl9xdW90ZSA9IG5leHQxCisgICAgICAgICAgICAgICAgICAgIHF1b3RlX2J1ZiA9IFtdCisKKyAg
ICAgICAgICAgIHByZXZpb3VzID0gbmV4dDEKKyAgICAgICAgICAgIG5leHQxID0gbmV4dDIKKwor
ICAgICAgICAgICAgaWYgcHJldmlvdXMgPj0gJyEnOgorICAgICAgICAgICAgICAgIHByZXZpb3Vz
X25vbl9zcGFjZSA9IHByZXZpb3VzCisKKyAgICAgICAgICAgIGlmIHByZXZpb3VzID09ICdcXCc6
CisgICAgICAgICAgICAgICAgZXNjYXBlX3NsYXNoX2NvdW50ICs9IDEKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgZXNjYXBlX3NsYXNoX2NvdW50ID0gMAorCitpZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgorICAgIG1pbmlmaWVyID0gSmF2YXNjcmlwdE1pbmlmeShzeXMuc3Rk
aW4sIHN5cy5zdGRvdXQpCisgICAgbWluaWZpZXIubWluaWZ5KCkKKyAgICBzeXMuc3Rkb3V0Lndy
aXRlKCdcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy94eGQu
cGwgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy94eGQucGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVl
MDhhNTJkOGU2NmNmZGEzYzA4M2Y3YWRiMTVmOTZjMDhhOWIwYwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3h4ZC5wbApAQCAtMCwwICsxLDQ1IEBACisj
ISAvdXNyL2Jpbi9wZXJsCisKKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMg
bWV0OgorIworIyAgICAjIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgIyBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICMgTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisKKyR2YXJuYW1lID0gc2hp
ZnQ7CiskZm5hbWUgPSBzaGlmdDsKKyRvdXRwdXQgPSBzaGlmdDsKKworb3BlbigkaW5wdXQsICc8
JywgJGZuYW1lKSBvciBkaWUgIkNhbid0IG9wZW4gZmlsZSBmb3IgcmVhZDogJGZuYW1lICQhIjsK
KyQvID0gdW5kZWY7CiskdGV4dCA9IDwkaW5wdXQ+OworY2xvc2UoJGlucHV0KTsKKworJHRleHQg
PSBqb2luKCcsICcsIG1hcCgnMHgnIC4gdW5wYWNrKCJIKiIsICRfKSwgc3BsaXQodW5kZWYsICR0
ZXh0KSkpOworCitvcGVuKCRvdXRwdXQsICc+JywgJG91dHB1dCkgb3IgZGllICJDYW4ndCBvcGVu
IGZpbGUgZm9yIHdyaXRlOiAkb3V0cHV0ICQhIjsKK3ByaW50ICRvdXRwdXQgImNvbnN0IHVuc2ln
bmVkIGNoYXIgJHZhcm5hbWVcW1xdID0ge1xuJHRleHRcbn07XG4iOworY2xvc2UoJG91dHB1dCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRmZjQxODczZGEyYjY1YTc3MTE0Y2Y1ZDQxZTg3YTRjMGQzMDYz
N2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisrKyAvZGV2L251bGwKQEAgLTEs
MzQzICswLDAgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0jIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0jIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0jIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgYXJn
cGFyc2UKLWltcG9ydCBmaWxlY21wCi1pbXBvcnQgZm5tYXRjaAotaW1wb3J0IG9zCi1pbXBvcnQg
cmUKLWltcG9ydCBzaHV0aWwKLWltcG9ydCBzeXMKLWltcG9ydCBkYXRldGltZQotaW1wb3J0IGpz
b24KLQotcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQotcGFyc2VyLmFkZF9hcmd1
bWVudCgnaW5wdXRfZmlsZScsIG5hcmdzPScqJywgaGVscD0nSW5wdXQgSlMgZmlsZXMgd2hpY2gg
YnVpbHRpbnMgZ2VuZXJhdGVkIGZyb20nKQotcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbnB1dC1k
aXJlY3RvcnknLCBoZWxwPSdBbGwgSlMgZmlsZXMgd2lsbCBiZSB1c2VkIGFzIGlucHV0IGZyb20g
dGhpcyBkaXJlY3RvcnkuJykKLXBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0JywgaGVscD0n
cGF0aCB0byBvdXRwdXQgY3BwIG9yIGggZmlsZScpCi1wYXJzZXIuYWRkX2FyZ3VtZW50KCctLXBy
ZWZpeCcsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J3ByZWZpeCB1c2VkIGZvciBwdWJsaWMgbWFjcm9z
JykKLXBhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFtZXNwYWNlJywgZGVmYXVsdD0nSlNDJywgaGVs
cD0nQysrIG5hbWVzcGFjZScpCi1hcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotCi1jb3B5cmln
aHRUZXh0ID0gIiIiICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi9cbgot
IiIiCi0KLWdlbmVyYXRvclN0cmluZyA9ICIvKiBHZW5lcmF0ZWQgYnkgJXMgZG8gbm90IGhhbmQg
ZWRpdC4gKi9cbiIgJSBvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKQotCi1mdW5jdGlvbkhlYWRS
ZWdFeHAgPSByZS5jb21waWxlKHIiKD86ZnVuY3Rpb258Y29uc3RydWN0b3IpXHMrXHcrXHMqXCgu
Kj9cKSIsIHJlLk1VTFRJTElORSB8IHJlLlMpCi1mdW5jdGlvbk5hbWVSZWdFeHAgPSByZS5jb21w
aWxlKHIiKD86ZnVuY3Rpb258Y29uc3RydWN0b3IpXHMrKFx3KylccypcKCIsIHJlLk1VTFRJTElO
RSB8IHJlLlMpCi1mdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21waWxlKHIiXmNv
bnN0cnVjdG9yIiwgcmUuTVVMVElMSU5FIHwgcmUuUykKLWZ1bmN0aW9uUGFyYW1ldGVyRmluZGVy
ID0gcmUuY29tcGlsZShyIl4oPzpmdW5jdGlvbnxjb25zdHJ1Y3RvcilccysoPzpcdyspXHMqXCgo
KD86XHMqXHcrKT9ccyooPzpccyosXHMqXHcrKSopP1xzKlwpIiwgcmUuTVVMVElMSU5FIHwgcmUu
UykKLQotbXVsdGlsaW5lQ29tbWVudFJlZ0V4cCA9IHJlLmNvbXBpbGUociJcL1wqLio/XCpcLyIs
IHJlLk1VTFRJTElORSB8IHJlLlMpCi1zaW5nbGVMaW5lQ29tbWVudFJlZ0V4cCA9IHJlLmNvbXBp
bGUociJcL1wvLio/XG4iLCByZS5NVUxUSUxJTkUgfCByZS5TKQotCi1kZWYgZ2V0Q29weXJpZ2h0
KHNvdXJjZSk6Ci0gICAgY29weXJpZ2h0QmxvY2sgPSBtdWx0aWxpbmVDb21tZW50UmVnRXhwLmZp
bmRhbGwoc291cmNlKVswXQotICAgIGNvcHlyaWdodEJsb2NrID0gY29weXJpZ2h0QmxvY2tbOmNv
cHlyaWdodEJsb2NrLmluZGV4KCJSZWRpc3RyaWJ1dGlvbiIpXQotICAgIGNvcHlSaWdodExpbmVz
ID0gW10KLQotICAgIGZvciBsaW5lIGluIGNvcHlyaWdodEJsb2NrLnNwbGl0KCJcbiIpOgotICAg
ICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCIvKiIsICIiKQotICAgICAgICBsaW5lID0gbGluZS5y
ZXBsYWNlKCIqLyIsICIiKQotICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCIqIiwgIiIpCi0g
ICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIkNvcHlyaWdodCIsICIiKQotICAgICAgICBsaW5l
ID0gbGluZS5yZXBsYWNlKCJjb3B5cmlnaHQiLCAiIikKLSAgICAgICAgbGluZSA9IGxpbmUucmVw
bGFjZSgiKEMpIiwgIiIpCi0gICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIihjKSIsICIiKQot
ICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCi0gICAgICAgIGlmIGxlbihsaW5lKSA9PSAwOgot
ICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBjb3B5UmlnaHRMaW5lcy5hcHBlbmQobGlu
ZSkKLSAgICAKLSAgICByZXR1cm4gbGlzdChzZXQoY29weVJpZ2h0TGluZXMpKQotCi1jbGFzcyBG
dW5jdGlvbihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzb3VyY2UsIGlz
Q29uc3RydWN0b3IsIHBhcmFtZXRlcnMpOgotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAg
ICAgIHNlbGYuc291cmNlID0gc291cmNlCi0gICAgICAgIHNlbGYuaXNDb25zdHJ1Y3RvciA9IGlz
Q29uc3RydWN0b3IKLSAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycwotCi0gICAg
ZGVmIG1hbmdsZU5hbWUoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgcU5hbWUgPSBvYmplY3QgKyAi
LiIgKyBzZWxmLm5hbWUKLSAgICAgICAgbWFuZ2xlZE5hbWUgPSAiIgotICAgICAgICBpID0gMAot
ICAgICAgICB3aGlsZSBpIDwgbGVuKHFOYW1lKToKLSAgICAgICAgICAgIGlmIHFOYW1lW2ldID09
ICcuJzoKLSAgICAgICAgICAgICAgICBtYW5nbGVkTmFtZSA9IG1hbmdsZWROYW1lICsgcU5hbWVb
aSArIDFdLnVwcGVyKCkKLSAgICAgICAgICAgICAgICBpID0gaSArIDEKLSAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5nbGVkTmFtZSArIHFOYW1lW2ld
Ci0gICAgICAgICAgICBpID0gaSArIDEKLSAgICAgICAgaWYgc2VsZi5pc0NvbnN0cnVjdG9yOgot
ICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5nbGVkTmFtZSArICJDb25zdHJ1Y3RvciIKLSAg
ICAgICAgcmV0dXJuIG1hbmdsZWROYW1lCi0KLWRlZiBnZXRGdW5jdGlvbnMoc291cmNlKToKLQot
ICAgIHNvdXJjZSA9IG11bHRpbGluZUNvbW1lbnRSZWdFeHAuc3ViKCIvKiovIiwgc2luZ2xlTGlu
ZUNvbW1lbnRSZWdFeHAuc3ViKCIvL1xuIiwgc291cmNlKSkKLQotICAgIG1hdGNoZXMgPSBbIGYg
Zm9yIGYgaW4gZnVuY3Rpb25IZWFkUmVnRXhwLmZpbmRpdGVyKHNvdXJjZSldCi0gICAgZnVuY3Rp
b25Cb3VuZHMgPSBbXQotICAgIHN0YXJ0ID0gMAotICAgIGVuZCA9IDAKLSAgICBmb3IgbWF0Y2gg
aW4gbWF0Y2hlczoKLSAgICAgICAgc3RhcnQgPSBtYXRjaC5zdGFydCgpCi0gICAgICAgIGlmIHN0
YXJ0IDwgZW5kOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZW5kID0gbWF0Y2guZW5k
KCkKLSAgICAgICAgd2hpbGUgc291cmNlW2VuZF0gIT0gJ3snOgotICAgICAgICAgICAgZW5kID0g
ZW5kICsgMQotICAgICAgICBkZXB0aCA9IDEKLSAgICAgICAgZW5kID0gZW5kICsgMQotICAgICAg
ICB3aGlsZSBkZXB0aCA+IDA6Ci0gICAgICAgICAgICBpZiBzb3VyY2VbZW5kXSA9PSAneyc6Ci0g
ICAgICAgICAgICAgICAgZGVwdGggPSBkZXB0aCArIDEKLSAgICAgICAgICAgIGVsaWYgc291cmNl
W2VuZF0gPT0gJ30nOgotICAgICAgICAgICAgICAgIGRlcHRoID0gZGVwdGggLSAxCi0gICAgICAg
ICAgICBlbmQgPSBlbmQgKyAxCi0gICAgICAgIGZ1bmN0aW9uQm91bmRzLmFwcGVuZCgoc3RhcnQs
IGVuZCkpCi0KLSAgICBmdW5jdGlvbnMgPSBbc291cmNlW3N0YXJ0OmVuZF0uc3RyaXAoKSBmb3Ig
KHN0YXJ0LCBlbmQpIGluIGZ1bmN0aW9uQm91bmRzXQotICAgIHJlc3VsdCA9IFtdCi0gICAgZm9y
IGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgZnVuY3Rpb24gPSBtdWx0aWxpbmVDb21t
ZW50UmVnRXhwLnN1YigiIiwgZnVuY3Rpb24pCi0gICAgICAgIGZ1bmN0aW9uTmFtZSA9IGZ1bmN0
aW9uTmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9uKVswXQotICAgICAgICBmdW5jdGlvbklzQ29u
c3RydWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2goZnVuY3Rpb24pICE9
IE5vbmUKLSAgICAgICAgZnVuY3Rpb25QYXJhbWV0ZXJzID0gZnVuY3Rpb25QYXJhbWV0ZXJGaW5k
ZXIuZmluZGFsbChmdW5jdGlvbilbMF0uc3BsaXQoJywnKQotICAgICAgICBpZiBsZW4oZnVuY3Rp
b25QYXJhbWV0ZXJzWzBdKSA9PSAwOgotICAgICAgICAgICAgZnVuY3Rpb25QYXJhbWV0ZXJzID0g
W10KLQotICAgICAgICByZXN1bHQuYXBwZW5kKEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSwgZnVuY3Rp
b24sIGZ1bmN0aW9uSXNDb25zdHJ1Y3RvciwgZnVuY3Rpb25QYXJhbWV0ZXJzKSkKLSAgICByZXR1
cm4gcmVzdWx0Ci0KLWRlZiB3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKHdyaXRlciwgaGVhZGVyTmFt
ZXMpOgotICAgIGZvciBoZWFkZXJOYW1lIGluIGhlYWRlck5hbWVzOgotICAgICAgICB3cml0ZXIu
d3JpdGUoIiNpbmNsdWRlICIgKyBoZWFkZXJOYW1lICsgIlxuIikKLQotZGVmIGdlbmVyYXRlQ29k
ZShzb3VyY2UpOgotICAgIGlucHV0RmlsZSA9IG9wZW4oc291cmNlLCAiciIpCi0gICAgYmFzZU5h
bWUgPSBvcy5wYXRoLmJhc2VuYW1lKHNvdXJjZSkucmVwbGFjZSgiLmpzIiwgIiIpCi0gICAgCi0g
ICAgc291cmNlID0gIiIKLSAgICBmb3IgbGluZSBpbiBpbnB1dEZpbGU6Ci0gICAgICAgIHNvdXJj
ZSA9IHNvdXJjZSArIGxpbmUKLSAgICAKLSAgICBpZiBzeXMucGxhdGZvcm0gPT0gImN5Z3dpbiI6
Ci0gICAgICAgIHNvdXJjZSA9IHNvdXJjZS5yZXBsYWNlKCJcclxuIiwgIlxuIikKLSAgICByZXR1
cm4gKGJhc2VOYW1lLCBnZXRGdW5jdGlvbnMoc291cmNlKSwgZ2V0Q29weXJpZ2h0KHNvdXJjZSkp
Ci0KLWJ1aWx0aW5zID0gW10KLWNvcHlyaWdodHMgPSBbXQotKG91dHB1dF9iYXNlLCBfKSA9IG9z
LnBhdGguc3BsaXRleHQoYXJncy5vdXRwdXQpCi0KLWlmIGFyZ3MuaW5wdXRfZGlyZWN0b3J5Ogot
ICAgIGZvciBmaWxlIGluIG9zLmxpc3RkaXIoYXJncy5pbnB1dF9kaXJlY3RvcnkpOgotICAgICAg
ICBhcmdzLmlucHV0X2ZpbGUuYXBwZW5kKG9zLnBhdGguam9pbihhcmdzLmlucHV0X2RpcmVjdG9y
eSwgZmlsZSkpCi0KLWZvciBmaWxlIGluIGFyZ3MuaW5wdXRfZmlsZToKLSAgICBpZiBmbm1hdGNo
LmZubWF0Y2goZmlsZSwgJyouanMnKToKLSAgICAgICAgKGJhc2VOYW1lLCBmdW5jdGlvbnMsIG9i
amVjdENvcHlyaWdodHMpID0gZ2VuZXJhdGVDb2RlKGZpbGUpCi0gICAgICAgIGNvcHlyaWdodHMu
ZXh0ZW5kKG9iamVjdENvcHlyaWdodHMpCi0gICAgICAgIGJ1aWx0aW5zLmFwcGVuZCgoYmFzZU5h
bWUsIGZ1bmN0aW9ucykpCi1uYW1lc3BhY2UgPSBhcmdzLm5hbWVzcGFjZQotbWFjcm9QcmVmaXgg
PSBhcmdzLnByZWZpeAotc2NvcGVOYW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2Vu
YW1lKGFyZ3Mub3V0cHV0KSlbMF0KLWluY2x1ZGVHdWFyZCA9IHNjb3BlTmFtZSArICJfSCIKLWhl
YWRlck5hbWUgPSBzY29wZU5hbWUgKyAiLmgiCi0KLWhlYWRlckluY2x1ZGVzID0gWyJcIkJ1aWx0
aW5VdGlscy5oXCIiXSBpZiBuYW1lc3BhY2UgPT0gIkpTQyIgZWxzZSBbIjxidWlsdGlucy9CdWls
dGluVXRpbHMuaD4iXQotY29udGVudEluY2x1ZGVzID0gWyJcIkJ1aWx0aW5FeGVjdXRhYmxlcy5o
XCIiLCAiXCJFeGVjdXRhYmxlLmhcIiIsICJcIkpTQ2VsbElubGluZXMuaFwiIiwgIlwiVk0uaFwi
Il0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2UgWyI8cnVudGltZS9FeGVjdXRhYmxlLmg+Iiwg
IjxydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaD4iLCAiPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaD4iLCAiPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPiIsICI8cnVudGltZS9WTS5oPiIsICJc
IldlYkNvcmVKU0NsaWVudERhdGEuaFwiIl0KLQotY29weXJpZ2h0cyA9IGxpc3Qoc2V0KGNvcHly
aWdodHMpKQotCi1jb3B5cmlnaHRCb2R5ID0gIiIKLWZvciBjb3B5cmlnaHQgaW4gY29weXJpZ2h0
czoKLSAgICBjb3B5cmlnaHRCb2R5ID0gY29weXJpZ2h0Qm9keSArIiAqIENvcHlyaWdodCAoQykg
IiArIGNvcHlyaWdodCArICJcbiIKLQotYnVpbHRpbnNIZWFkZXIgPSBvcGVuKG91dHB1dF9iYXNl
ICsgIi5oLnRtcCIsICJ3IikKLWJ1aWx0aW5zSW1wbGVtZW50YXRpb24gPSBvcGVuKG91dHB1dF9i
YXNlICsgIi5jcHAudG1wIiwgInciKQotY29weXJpZ2h0VGV4dCA9ICIvKlxuIiArIGNvcHlyaWdo
dEJvZHkgKyBjb3B5cmlnaHRUZXh0Ci1idWlsdGluc0hlYWRlci53cml0ZSgiIiIlcwotJXMKLQot
I2lmbmRlZiAlcwotI2RlZmluZSAlcwotCi0iIiIgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmln
aHRUZXh0LCBpbmNsdWRlR3VhcmQsIGluY2x1ZGVHdWFyZCkpCi0KLXdyaXRlSW5jbHVkZURpcmVj
dGl2ZXMoYnVpbHRpbnNIZWFkZXIsIGhlYWRlckluY2x1ZGVzKQotCi1idWlsdGluc0hlYWRlci53
cml0ZSgiIiIKLW5hbWVzcGFjZSBKU0MgewotICAgIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsK
LX0KLQotbmFtZXNwYWNlICVzIHsKLQotIiIiICUgbmFtZXNwYWNlKQotCi1jb2RlUmVmZXJlbmNl
cyA9IFtdCi0KLWZvciAob2JqZWN0TmFtZSwgZnVuY3Rpb25zKSBpbiBidWlsdGluczoKLSAgICBw
cmludCgiR2VuZXJhdGluZyBiaW5kaW5ncyBmb3IgdGhlICVzIGJ1aWx0aW4uIiAlIG9iamVjdE5h
bWUpCi0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIi8qICVzIGZ1bmN0aW9ucyAqL1xuIiAlIG9i
amVjdE5hbWUpCi0gICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgbmFtZSA9
IGZ1bmN0aW9uLm5hbWUKLSAgICAgICAgbWFuZ2xlZE5hbWUgPSBmdW5jdGlvbi5tYW5nbGVOYW1l
KG9iamVjdE5hbWUpCi0gICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xlZE5hbWVbMF0ubG93ZXIo
KSArIG1hbmdsZWROYW1lWzE6XSArICJDb2RlIgotICAgICAgICBjb2RlUmVmZXJlbmNlcy5hcHBl
bmQoKG1hbmdsZWROYW1lLCBmdW5jdGlvbikpCi0gICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRl
KCJleHRlcm4gY29uc3QgY2hhciogc18lcztcbiIgJSBtYW5nbGVkTmFtZSkKLSAgICAgICAgYnVp
bHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBpbnQgc18lc0xlbmd0aDtcbiIgJSBtYW5n
bGVkTmFtZSkKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0cnVjdEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUp
Ci0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuIikKLSAgICBidWlsdGluc0hlYWRlci53cml0
ZSgiI2RlZmluZSAlc19GT1JFQUNIXyVzX0JVSUxUSU4obWFjcm8pIFxcXG4iICUgKG1hY3JvUHJl
Zml4LCBvYmplY3ROYW1lLnJlcGxhY2UoIi4iLCAiXyIpLnVwcGVyKCkpKQotICAgIGZvciBmdW5j
dGlvbiBpbiBmdW5jdGlvbnM6Ci0gICAgICAgIG1hbmdsZWROYW1lID0gZnVuY3Rpb24ubWFuZ2xl
TmFtZShvYmplY3ROYW1lKQotICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3Jv
KCVzLCAlcywgJWQpIFxcXG4iICUgKGZ1bmN0aW9uLm5hbWUsIG1hbmdsZWROYW1lLCBsZW4oZnVu
Y3Rpb24ucGFyYW1ldGVycykpKQotICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIpCi0gICAg
Zm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUo
IiNkZWZpbmUgJXNfQlVJTFRJTl8lcyAxXG4iICUgKG1hY3JvUHJlZml4LCBmdW5jdGlvbi5tYW5n
bGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpKQotICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJc
blxuIikKLW5hbWVzID0gW10KLWJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVB
Q0hfQlVJTFRJTihtYWNybylcXFxuIiAlIG1hY3JvUHJlZml4KQotZm9yIChjb2RlUmVmZXJlbmNl
LCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6Ci0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUo
IiAgICBtYWNybyglcywgJXMsIHNfJXNMZW5ndGgpIFxcXG4iICUgKGNvZGVSZWZlcmVuY2UsIGZ1
bmN0aW9uLm5hbWUsIGNvZGVSZWZlcmVuY2UpKQotICAgIG5hbWVzLmFwcGVuZChmdW5jdGlvbi5u
YW1lKQotCi1idWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCi1idWlsdGluc0hlYWRlci53cml0
ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFxcbiIg
JSBtYWNyb1ByZWZpeCkKLWZvciBuYW1lIGluIHNvcnRlZChzZXQobmFtZXMpKToKLSAgICBidWls
dGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzKSBcXFxuIiAlIG5hbWUpCi1idWlsdGluc0hl
YWRlci53cml0ZSgiIiIKLQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVO
YW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCi0gICAgSlNDOjpGdW5jdGlvbkV4
ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwotCi0lc19GT1JFQUNIX0JV
SUxUSU4oREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5f
R0VORVJBVE9SCi0KLSNkZWZpbmUgJXNfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVmaW5lZCAlc19C
VUlMVElOXyAjIyBuYW1lCi0KLX0KLQotI2VuZGlmIC8vICVzCi0KLSIiIiAlIChtYWNyb1ByZWZp
eCwgbWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBpbmNsdWRlR3VhcmQpKQotCi1idWlsdGluc0lt
cGxlbWVudGF0aW9uLndyaXRlKCIiIiVzCi0lcwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
bmNsdWRlICIlcyIKLQotIiIiICAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQsIGhl
YWRlck5hbWUpKQotCi13cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSW1wbGVtZW50YXRp
b24sIGNvbnRlbnRJbmNsdWRlcykKLQotYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIK
LW5hbWVzcGFjZSAlcyB7Ci0KLSIiIiAgJSAobmFtZXNwYWNlKSkKLQotCi0KLWZvciAoY29kZVJl
ZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgotICAgIHNvdXJjZSA9IGZ1bmN0
aW9uLnNvdXJjZQotICAgIHNvdXJjZSA9ICIoZnVuY3Rpb24gIiArIHNvdXJjZVtzb3VyY2UuaW5k
ZXgoIigiKTpdICsgIikiCi0gICAgbGluZXMgPSBqc29uLmR1bXBzKHNvdXJjZSlbMTotMV0uc3Bs
aXQoIlxcbiIpCi0gICAgc291cmNlTGVuZ3RoID0gbGVuKHNvdXJjZSkKLSAgICBzb3VyY2UgPSAi
IgotICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyAoIiAg
ICBcIiVzXFxuXCIgXFxcbiIgJSBsaW5lKQotICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3Jp
dGUoImNvbnN0IGNoYXIqIHNfJXMgPVxuJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgc291cmNl
KSkKLSAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBpbnQgc18lc0xlbmd0
aCA9ICVkO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIHNvdXJjZUxlbmd0aCArIDEpKSAjICsgMSBm
b3IgXG4KLSAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fu
bm90Q29uc3RydWN0IgotICAgIGlmIGZ1bmN0aW9uLmlzQ29uc3RydWN0b3I6Ci0gICAgICAgIGNv
bnN0cnVjdEFiaWxpdHkgPSAiSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QiCi0g
ICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5ID0gJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29u
c3RydWN0QWJpbGl0eSkpICMgKyAxIGZvciBcbgotCi1idWlsdGluc0ltcGxlbWVudGF0aW9uLndy
aXRlKCIiIgotI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0
aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLUpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2Rl
TmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXAotIiIiKTsKLQotaWYgKG5hbWVzcGFjZSA9
PSAiSlNDIik6Ci0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ7XFwKLSAgICBy
ZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxp
bmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAot
IiIiKQotZWxzZToKLSAgICBidWlsdGluTmFtZSA9IHNjb3BlTmFtZVswXS5sb3dlcigpICsgc2Nv
cGVOYW1lWzE6XQotICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIie1xcCi0gICAg
SlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+
KHZtLmNsaWVudERhdGEpOyBcXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rp
b25zKCkuJXMoKS5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5i
dWlsdGluRnVuY3Rpb25zKCkuJXMoKS5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAotIiIiJSAoYnVp
bHRpbk5hbWUsIGJ1aWx0aW5OYW1lKSkKLQotYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgi
IiJ9Ci0lc19GT1JFQUNIX0JVSUxUSU4oREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVm
IERFRklORV9CVUlMVElOX0dFTkVSQVRPUgotfQotCi0iIiIlIChtYWNyb1ByZWZpeCkpCi0KLWJ1
aWx0aW5zSGVhZGVyLmNsb3NlKCkKLWJ1aWx0aW5zSW1wbGVtZW50YXRpb24uY2xvc2UoKQotCi1p
ZiAobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpIG9yIChub3QgZmlsZWNt
cC5jbXAob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiLCBzaGFsbG93
PUZhbHNlKSk6Ci0gICAgaWYgKG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpOgot
ICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgiKQotICAgIG9zLnJlbmFtZShvdXRw
dXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFzZSArICIuaCIpCi1lbHNlOgotICAgIG9zLnJl
bW92ZShvdXRwdXRfYmFzZSArICIuaC50bXAiKQotCi1pZiAobm90IG9zLnBhdGguZXhpc3RzKG91
dHB1dF9iYXNlICsgIi5jcHAiKSkgb3IgKG5vdCBmaWxlY21wLmNtcChvdXRwdXRfYmFzZSArICIu
Y3BwLnRtcCIsIG91dHB1dF9iYXNlICsgIi5jcHAiLCBzaGFsbG93PUZhbHNlKSk6Ci0gICAgaWYg
KG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5jcHAiKSk6Ci0gICAgICAgIG9zLnJlbW92
ZShvdXRwdXRfYmFzZSArICIuY3BwIikKLSAgICBvcy5yZW5hbWUob3V0cHV0X2Jhc2UgKyAiLmNw
cC50bXAiLCBvdXRwdXRfYmFzZSArICIuY3BwIikKLWVsc2U6Ci0gICAgb3MucmVtb3ZlKG91dHB1
dF9iYXNlICsgIi5jcHAudG1wIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy9jc3NtaW4ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvY3NzbWluLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDY0
MGViMjg0YmFkZDRmNWM4MmU3MWEzZmNhYzZkOGE3MWUzMDIxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jc3NtaW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0jIS91
c3IvYmluL3B5dGhvbgotCi0jIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1p
bXBvcnQgcmUKLQotZGVmIGNzc21pbmlmeShjc3MpOgotICAgIHJ1bGVzID0gKAotICAgICAgICAo
ciJcL1wqLio/XCpcLyIsICIiKSwgICAgICAgICAgIyBkZWxldGUgY29tbWVudHMKLSAgICAgICAg
KHIiXG4iLCAiIiksICAgICAgICAgICAgICAgICAgICMgZGVsZXRlIG5ldyBsaW5lcwotICAgICAg
ICAociJccysiLCAiICIpLCAgICAgICAgICAgICAgICAgIyBjaGFuZ2UgbXVsdGlwbGUgc3BhY2Vz
IHRvIG9uZSBzcGFjZQotICAgICAgICAociJccz8oWzs6e30sKz5dKVxzPyIsIHIiXDEiKSwgIyBk
ZWxldGUgc3BhY2Ugd2hlcmUgaXQgaXMgbm90IG5lZWRlZAotICAgICAgICAociI7fSIsICJ9Iikg
ICAgICAgICAgICAgICAgICAgIyBjaGFuZ2UgJzt9JyB0byAnfScgYmVjYXVzZSB0aGUgc2VtaWNv
bG9uIGlzIG5vdCBuZWVkZWQKLSAgICApCi0KLSAgICBjc3MgPSBjc3MucmVwbGFjZSgiXHJcbiIs
ICJcbiIpCi0gICAgZm9yIHJ1bGUgaW4gcnVsZXM6Ci0gICAgICAgIGNzcyA9IHJlLmNvbXBpbGUo
cnVsZVswXSwgcmUuTVVMVElMSU5FIHwgcmUuVU5JQ09ERSB8IHJlLkRPVEFMTCkuc3ViKHJ1bGVb
MV0sIGNzcykKLSAgICByZXR1cm4gY3NzCi0KLWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0g
ICAgaW1wb3J0IHN5cwotICAgIHN5cy5zdGRvdXQud3JpdGUoY3NzbWluaWZ5KHN5cy5zdGRpbi5y
ZWFkKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29u
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1MzY2MDMxOGRkY2UzYmE3OGNiYjA2
OTZhMjE3NTgxOTYwZjkxMDEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0
ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAg
QEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUg
bWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLWltcG9ydCBnbG9iCi1pbXBvcnQganNvbgotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0K
LWlmIGxlbihzeXMuYXJndikgPCAyOgotICAgIHByaW50KCJ1c2FnZTogJXMgW2pzb24gZmlsZXMg
b3IgZGlyZWN0b3J5IG9mIGpzb24gZmlsZXMgLi4uXSIgJSBvcy5wYXRoLmJhc2VuYW1lKHN5cy5h
cmd2WzBdKSkKLSAgICBzeXMuZXhpdCgxKQotCi1maWxlcyA9IFtdCi1mb3IgYXJnIGluIHN5cy5h
cmd2WzE6XToKLSAgICBpZiBub3Qgb3MuYWNjZXNzKGFyZywgb3MuRl9PSyk6Ci0gICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigiRmlsZSBcIiVzXCIgbm90IGZvdW5kIiAlIGFyZykKLSAgICBlbGlmIG9z
LnBhdGguaXNkaXIoYXJnKToKLSAgICAgICAgZmlsZXMuZXh0ZW5kKGdsb2IuZ2xvYihvcy5wYXRo
LmpvaW4oYXJnLCAiKi5qc29uIikpKQotICAgIGVsc2U6Ci0gICAgICAgIGZpbGVzLmFwcGVuZChh
cmcpCi1maWxlcy5zb3J0KCkKLQotIyBUbyBrZWVwIGFzIGNsb3NlIHRvIHRoZSBvcmlnaW5hbCBK
U09OIGZvcm1hdHRpbmcgYXMgcG9zc2libGUsIGp1c3QKLSMgZHVtcCBlYWNoIEpTT04gaW5wdXQg
ZmlsZSB1bm1vZGlmaWVkIGludG8gYW4gYXJyYXkgb2YgImRvbWFpbnMiLgotIyBWYWxpZGF0ZSBl
YWNoIGZpbGUgaXMgdmFsaWQgSlNPTiBhbmQgdGhhdCB0aGVyZSBpcyBhICJkb21haW4iIGtleS4K
LQotZmlyc3QgPSBUcnVlCi1wcmludCgie1wiZG9tYWluc1wiOlsiKQotZm9yIGZpbGUgaW4gZmls
ZXM6Ci0gICAgaWYgZmlyc3Q6Ci0gICAgICAgIGZpcnN0ID0gRmFsc2UKLSAgICBlbHNlOgotICAg
ICAgICBwcmludCgiLCIpCi0KLSAgICBzdHJpbmcgPSBvcGVuKGZpbGUpLnJlYWQoKQotCi0gICAg
dHJ5OgotICAgICAgICBkaWN0aW9uYXJ5ID0ganNvbi5sb2FkcyhzdHJpbmcpCi0gICAgICAgIGlm
IG5vdCAiZG9tYWluIiBpbiBkaWN0aW9uYXJ5OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCJGaWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWlucyBhIFwiZG9tYWluXCIga2V5LiIgJSBmaWxl
KQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGaWxl
IFwiJXNcIiBkb2VzIG5vdCBjb250YWluIHZhbGlkIEpTT046XG4iICUgZmlsZSkKLSAgICAgICAg
cmFpc2UKLQotICAgIHByaW50KHN0cmluZy5yc3RyaXAoKSkKLXByaW50KCJdfSIpCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5k
LW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2Ny
aXB0cy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggODkyMDBjODRlZTllNjZkMzFi
NmNhZWVjYjQ0NjgwNzEyZTczN2M2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvaW5s
aW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkKKysrIC9kZXYvbnVsbApA
QCAtMSw4MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSMgVGhpcyBzY3JpcHQgaW5saW5lcyBhbmQgbWluaWZp
ZXMgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIHNjcmlwdHMuCi0jICAtIDxsaW5rIGhyZWY9Ii4u
LiIgcmVsPSJzdHlsZXNoZWV0Ij4gPT4gPHN0eWxlPi4uLjwvc3R5bGU+Ci0jICAtIDxzY3JpcHQg
c3JjPSIuLi4iPiAgICAgICAgICAgICAgICAgPT4gPHNjcmlwdD4uLi48L3NjcmlwdD4KLQotaW1w
b3J0IGNzc21pbgotaW1wb3J0IGpzbWluCi1pbXBvcnQgb3MucGF0aAotaW1wb3J0IHJlCi1pbXBv
cnQgc3lzCi0KLQotZGVmIG1haW4oYXJndik6Ci0KLSAgICBpZiBsZW4oYXJndikgPCAyOgotICAg
ICAgICBwcmludCgndXNhZ2U6ICVzIGlucHV0RmlsZSBvdXRwdXRGaWxlJyAlIGFyZ3ZbMF0pCi0g
ICAgICAgIHJldHVybiAxCi0KLSAgICBpbnB1dEZpbGVOYW1lID0gYXJndlsxXQotICAgIG91dHB1
dEZpbGVOYW1lID0gYXJndlsyXQotICAgIGltcG9ydHNEaXIgPSBvcy5wYXRoLmRpcm5hbWUoaW5w
dXRGaWxlTmFtZSkKLQotICAgIGlucHV0RmlsZSA9IG9wZW4oaW5wdXRGaWxlTmFtZSwgJ3InKQot
ICAgIGlucHV0Q29udGVudCA9IGlucHV0RmlsZS5yZWFkKCkKLSAgICBpbnB1dEZpbGUuY2xvc2Uo
KQotCi0gICAgZGVmIGlubGluZShtYXRjaCwgbWluaWZpZXIsIHByZWZpeCwgcG9zdGZpeCk6Ci0g
ICAgICAgIGltcG9ydEZpbGVOYW1lID0gbWF0Y2guZ3JvdXAoMSkKLSAgICAgICAgZnVsbFBhdGgg
PSBvcy5wYXRoLmpvaW4oaW1wb3J0c0RpciwgaW1wb3J0RmlsZU5hbWUpCi0gICAgICAgIGlmIG5v
dCBvcy5hY2Nlc3MoZnVsbFBhdGgsIG9zLkZfT0spOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdGaWxlICVzIHJlZmVyZW5jZWQgaW4gJXMgbm90IGZvdW5kJyAlIChpbXBvcnRGaWxlTmFt
ZSwgaW5wdXRGaWxlTmFtZSkpCi0gICAgICAgIGltcG9ydEZpbGUgPSBvcGVuKGZ1bGxQYXRoLCAn
cicpCi0gICAgICAgIGltcG9ydENvbnRlbnQgPSBtaW5pZmllcihpbXBvcnRGaWxlLnJlYWQoKSkK
LSAgICAgICAgaW1wb3J0RmlsZS5jbG9zZSgpCi0gICAgICAgIHJldHVybiAnJXMlcyVzJyAlIChw
cmVmaXgsIGltcG9ydENvbnRlbnQsIHBvc3RmaXgpCi0KLSAgICBkZWYgaW5saW5lU3R5bGVzaGVl
dChtYXRjaCk6Ci0gICAgICAgIHJldHVybiBpbmxpbmUobWF0Y2gsIGNzc21pbi5jc3NtaW5pZnks
ICI8c3R5bGU+IiwgIjwvc3R5bGU+IikKLQotICAgIGRlZiBpbmxpbmVTY3JpcHQobWF0Y2gpOgot
ICAgICAgICByZXR1cm4gaW5saW5lKG1hdGNoLCBqc21pbi5qc21pbiwgIjxzY3JpcHQ+IiwgIjwv
c2NyaXB0PiIpCi0KLSAgICBvdXRwdXRDb250ZW50ID0gcmUuc3ViKHInPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPVtcJyJdKFteXCciXSspW1wnIl0+JywgaW5saW5lU3R5bGVzaGVldCwgaW5w
dXRDb250ZW50KQotICAgIG91dHB1dENvbnRlbnQgPSByZS5zdWIocic8c2NyaXB0IHNyYz1bXCci
XShbXlwnIl0rKVtcJyJdPjwvc2NyaXB0PicsIGlubGluZVNjcmlwdCwgb3V0cHV0Q29udGVudCkK
LQotICAgIG91dHB1dEZpbGUgPSBvcGVuKG91dHB1dEZpbGVOYW1lLCAndycpCi0gICAgb3V0cHV0
RmlsZS53cml0ZShvdXRwdXRDb250ZW50KQotICAgIG91dHB1dEZpbGUuY2xvc2UoKQotCi0gICAg
IyBUb3VjaCBvdXRwdXQgZmlsZSBkaXJlY3RvcnkgdG8gbWFrZSBzdXJlIHRoYXQgWGNvZGUgd2ls
bCBjb3B5Ci0gICAgIyBtb2RpZmllZCByZXNvdXJjZSBmaWxlcy4KLSAgICBpZiBzeXMucGxhdGZv
cm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgIG91dHB1dERpck5hbWUgPSBvcy5wYXRoLmRpcm5hbWUo
b3V0cHV0RmlsZU5hbWUpCi0gICAgICAgIG9zLnV0aW1lKG91dHB1dERpck5hbWUsIE5vbmUpCi0K
LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvanNt
aW4ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvanNtaW4ucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzZDJhNTBhYzk1ZDhhMGE3MDllNTNkZGRi
N2I4YTU1ZGZhYmEzY2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2pzbWluLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMjM4ICswLDAgQEAKLSMgVGhpcyBjb2RlIGlzIG9yaWdpbmFsIGZy
b20ganNtaW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQsIGl0IHdhcyB0cmFuc2xhdGVkIHRvCi0jIFB5
dGhvbiBieSBCYXJ1Y2ggRXZlbi4gSXQgd2FzIHJld3JpdHRlbiBieSBEYXZlIFN0Lkdlcm1haW4g
Zm9yIHNwZWVkLgotIwotIyBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKLSMKLSMgQ29weXJpZ2h0IChj
KSAyMDEzIERhdmUgU3QuR2VybWFpbgotIwotIyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Ci0jIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0byBkZWFsCi0jIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKLSMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bAotIyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgU29mdHdhcmUgaXMKLSMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9uczoKLSMKLSMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSMgYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0jCi0jIFRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF
WFBSRVNTIE9SCi0jIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotIyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSMgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF
UyBPUiBPVEhFUgotIyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAotIyBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCi0j
IFRIRSBTT0ZUV0FSRS4KLQotCi1pbXBvcnQgc3lzCi1pc18zID0gc3lzLnZlcnNpb25faW5mbyA+
PSAoMywgMCkKLWlmIGlzXzM6Ci0gICAgaW1wb3J0IGlvCi1lbHNlOgotICAgIGltcG9ydCBTdHJp
bmdJTwotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IGNTdHJpbmdJTwotICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICAgICAgY1N0cmluZ0lPID0gTm9uZQotCi0KLV9fYWxsX18gPSBbJ2pzbWlu
JywgJ0phdmFzY3JpcHRNaW5pZnknXQotX192ZXJzaW9uX18gPSAnMi4wLjknCi0KLQotZGVmIGpz
bWluKGpzKToKLSAgICAiIiIKLSAgICByZXR1cm5zIGEgbWluaWZpZWQgdmVyc2lvbiBvZiB0aGUg
amF2YXNjcmlwdCBzdHJpbmcKLSAgICAiIiIKLSAgICBpZiBub3QgaXNfMzoKLSAgICAgICAgaWYg
Y1N0cmluZ0lPIGFuZCBub3QgaXNpbnN0YW5jZShqcywgdW5pY29kZSk6Ci0gICAgICAgICAgICAj
IHN0cmluZ3MgY2FuIHVzZSBjU3RyaW5nSU8gZm9yIGEgM3ggcGVyZm9ybWFuY2UKLSAgICAgICAg
ICAgICMgaW1wcm92ZW1lbnQsIGJ1dCB1bmljb2RlIChpbiBweXRob24yKSBjYW5ub3QKLSAgICAg
ICAgICAgIGtsYXNzID0gY1N0cmluZ0lPLlN0cmluZ0lPCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBrbGFzcyA9IFN0cmluZ0lPLlN0cmluZ0lPCi0gICAgZWxzZToKLSAgICAgICAga2xhc3Mg
PSBpby5TdHJpbmdJTwotICAgIGlucyA9IGtsYXNzKGpzKQotICAgIG91dHMgPSBrbGFzcygpCi0g
ICAgSmF2YXNjcmlwdE1pbmlmeShpbnMsIG91dHMpLm1pbmlmeSgpCi0gICAgcmV0dXJuIG91dHMu
Z2V0dmFsdWUoKQotCi0KLWNsYXNzIEphdmFzY3JpcHRNaW5pZnkob2JqZWN0KToKLSAgICAiIiIK
LSAgICBNaW5pZnkgYW4gaW5wdXQgc3RyZWFtIG9mIGphdmFzY3JpcHQsIHdyaXRpbmcKLSAgICB0
byBhbiBvdXRwdXQgc3RyZWFtCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaW5z
dHJlYW09Tm9uZSwgb3V0c3RyZWFtPU5vbmUpOgotICAgICAgICBzZWxmLmlucyA9IGluc3RyZWFt
Ci0gICAgICAgIHNlbGYub3V0cyA9IG91dHN0cmVhbQotCi0gICAgZGVmIG1pbmlmeShzZWxmLCBp
bnN0cmVhbT1Ob25lLCBvdXRzdHJlYW09Tm9uZSk6Ci0gICAgICAgIGlmIGluc3RyZWFtIGFuZCBv
dXRzdHJlYW06Ci0gICAgICAgICAgICBzZWxmLmlucywgc2VsZi5vdXRzID0gaW5zdHJlYW0sIG91
dHN0cmVhbQotCi0gICAgICAgIHNlbGYuaXNfcmV0dXJuID0gRmFsc2UKLSAgICAgICAgc2VsZi5y
ZXR1cm5fYnVmID0gJycKLQotICAgICAgICBkZWYgd3JpdGUoY2hhcik6Ci0gICAgICAgICAgICAj
IGFsbCBvZiB0aGlzIGlzIHRvIHN1cHBvcnQgbGl0ZXJhbCByZWd1bGFyIGV4cHJlc3Npb25zLgot
ICAgICAgICAgICAgIyBzaWdoCi0gICAgICAgICAgICBpZiBjaGFyIGluICdyZXR1cm4nOgotICAg
ICAgICAgICAgICAgIHNlbGYucmV0dXJuX2J1ZiArPSBjaGFyCi0gICAgICAgICAgICAgICAgc2Vs
Zi5pc19yZXR1cm4gPSBzZWxmLnJldHVybl9idWYgPT0gJ3JldHVybicKLSAgICAgICAgICAgIHNl
bGYub3V0cy53cml0ZShjaGFyKQotICAgICAgICAgICAgaWYgc2VsZi5pc19yZXR1cm46Ci0gICAg
ICAgICAgICAgICAgc2VsZi5yZXR1cm5fYnVmID0gJycKLQotICAgICAgICByZWFkID0gc2VsZi5p
bnMucmVhZAotCi0gICAgICAgIHNwYWNlX3N0cmluZ3MgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiXAotICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5XyRc
XCIKLSAgICAgICAgc3RhcnRlcnMsIGVuZGVycyA9ICd7WygrLScsICd9XSkrLSJcJycKLSAgICAg
ICAgbmV3bGluZXN0YXJ0X3N0cmluZ3MgPSBzdGFydGVycyArIHNwYWNlX3N0cmluZ3MKLSAgICAg
ICAgbmV3bGluZWVuZF9zdHJpbmdzID0gZW5kZXJzICsgc3BhY2Vfc3RyaW5ncwotICAgICAgICBk
b19uZXdsaW5lID0gRmFsc2UKLSAgICAgICAgZG9fc3BhY2UgPSBGYWxzZQotICAgICAgICBlc2Nh
cGVfc2xhc2hfY291bnQgPSAwCi0gICAgICAgIGRvaW5nX3NpbmdsZV9jb21tZW50ID0gRmFsc2UK
LSAgICAgICAgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQgPSAnJwotICAgICAgICBkb2luZ19tdWx0
aV9jb21tZW50ID0gRmFsc2UKLSAgICAgICAgaW5fcmUgPSBGYWxzZQotICAgICAgICBpbl9xdW90
ZSA9ICcnCi0gICAgICAgIHF1b3RlX2J1ZiA9IFtdCi0KLSAgICAgICAgcHJldmlvdXMgPSByZWFk
KDEpCi0gICAgICAgIGlmIHByZXZpb3VzID09ICdcXCc6Ci0gICAgICAgICAgICBlc2NhcGVfc2xh
c2hfY291bnQgKz0gMQotICAgICAgICBuZXh0MSA9IHJlYWQoMSkKLSAgICAgICAgaWYgcHJldmlv
dXMgPT0gJy8nOgotICAgICAgICAgICAgaWYgbmV4dDEgPT0gJy8nOgotICAgICAgICAgICAgICAg
IGRvaW5nX3NpbmdsZV9jb21tZW50ID0gVHJ1ZQotICAgICAgICAgICAgZWxpZiBuZXh0MSA9PSAn
Kic6Ci0gICAgICAgICAgICAgICAgZG9pbmdfbXVsdGlfY29tbWVudCA9IFRydWUKLSAgICAgICAg
ICAgICAgICBwcmV2aW91cyA9IG5leHQxCi0gICAgICAgICAgICAgICAgbmV4dDEgPSByZWFkKDEp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHdyaXRlKHByZXZpb3VzKQotICAg
ICAgICBlbGlmIG5vdCBwcmV2aW91czoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBlbGlm
IHByZXZpb3VzID49ICchJzoKLSAgICAgICAgICAgIGlmIHByZXZpb3VzIGluICInXCIiOgotICAg
ICAgICAgICAgICAgIGluX3F1b3RlID0gcHJldmlvdXMKLSAgICAgICAgICAgIHdyaXRlKHByZXZp
b3VzKQotICAgICAgICAgICAgcHJldmlvdXNfbm9uX3NwYWNlID0gcHJldmlvdXMKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHByZXZpb3VzX25vbl9zcGFjZSA9ICcgJwotICAgICAgICBpZiBu
b3QgbmV4dDE6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICB3aGlsZSAxOgotICAgICAg
ICAgICAgbmV4dDIgPSByZWFkKDEpCi0gICAgICAgICAgICBpZiBub3QgbmV4dDI6Ci0gICAgICAg
ICAgICAgICAgbGFzdCA9IG5leHQxLnN0cmlwKCkKLSAgICAgICAgICAgICAgICBpZiBub3QgKGRv
aW5nX3NpbmdsZV9jb21tZW50IG9yIGRvaW5nX211bHRpX2NvbW1lbnQpXAotICAgICAgICAgICAg
ICAgICAgICBhbmQgbGFzdCBub3QgaW4gKCcnLCAnLycpOgotICAgICAgICAgICAgICAgICAgICBp
ZiBpbl9xdW90ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKCcnLmpvaW4ocXVvdGVf
YnVmKSkKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUobGFzdCkKLSAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAgICAgaWYgZG9pbmdfbXVsdGlfY29tbWVudDoKLSAgICAgICAgICAgICAg
ICBpZiBuZXh0MSA9PSAnKicgYW5kIG5leHQyID09ICcvJzoKLSAgICAgICAgICAgICAgICAgICAg
ZG9pbmdfbXVsdGlfY29tbWVudCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgICAgIG5leHQyID0g
cmVhZCgxKQotICAgICAgICAgICAgZWxpZiBkb2luZ19zaW5nbGVfY29tbWVudDoKLSAgICAgICAg
ICAgICAgICBpZiBuZXh0MSBpbiAnXHJcbic6Ci0gICAgICAgICAgICAgICAgICAgIGRvaW5nX3Np
bmdsZV9jb21tZW50ID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgbmV4dDIgaW4g
J1xyXG4nOgotICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiBub3QgbmV4dDI6Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgaWYgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQg
aW4gJyl9XSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb19uZXdsaW5lID0gVHJ1ZQotICAg
ICAgICAgICAgICAgICAgICBlbGlmIHByZXZpb3VzX2JlZm9yZV9jb21tZW50IGluIHNwYWNlX3N0
cmluZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSgnXG4nKQotICAgICAgICAgICAg
ZWxpZiBpbl9xdW90ZToKLSAgICAgICAgICAgICAgICBxdW90ZV9idWYuYXBwZW5kKG5leHQxKQot
Ci0gICAgICAgICAgICAgICAgaWYgbmV4dDEgPT0gaW5fcXVvdGU6Ci0gICAgICAgICAgICAgICAg
ICAgIG51bXNsYXNoZXMgPSAwCi0gICAgICAgICAgICAgICAgICAgIGZvciBjIGluIHJldmVyc2Vk
KHF1b3RlX2J1Zls6LTFdKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGMgIT0gJ1xcJzoK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1zbGFzaGVzICs9IDEKLSAg
ICAgICAgICAgICAgICAgICAgaWYgbnVtc2xhc2hlcyAlIDIgPT0gMDoKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGluX3F1b3RlID0gJycKLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKCcn
LmpvaW4ocXVvdGVfYnVmKSkKLSAgICAgICAgICAgIGVsaWYgbmV4dDEgaW4gJ1xyXG4nOgotICAg
ICAgICAgICAgICAgIGlmIHByZXZpb3VzX25vbl9zcGFjZSBpbiBuZXdsaW5lZW5kX3N0cmluZ3Mg
XAotICAgICAgICAgICAgICAgICAgICBvciBwcmV2aW91c19ub25fc3BhY2UgPiAnfic6Ci0gICAg
ICAgICAgICAgICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBuZXh0
MiA8ICchJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0MiA9IHJlYWQoMSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgbmV4dDI6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5leHQyIGluIG5ld2xpbmVzdGFydF9zdHJpbmdz
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgbmV4dDIgPiAnficgb3IgbmV4
dDIgPT0gJy8nOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb19uZXdsaW5lID0g
VHJ1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBlbGlm
IG5leHQxIDwgJyEnIGFuZCBub3QgaW5fcmU6Ci0gICAgICAgICAgICAgICAgaWYgKHByZXZpb3Vz
X25vbl9zcGFjZSBpbiBzcGFjZV9zdHJpbmdzIFwKLSAgICAgICAgICAgICAgICAgICAgb3IgcHJl
dmlvdXNfbm9uX3NwYWNlID4gJ34nKSBcCi0gICAgICAgICAgICAgICAgICAgIGFuZCAobmV4dDIg
aW4gc3BhY2Vfc3RyaW5ncyBvciBuZXh0MiA+ICd+Jyk6Ci0gICAgICAgICAgICAgICAgICAgIGRv
X3NwYWNlID0gVHJ1ZQotICAgICAgICAgICAgICAgIGVsaWYgcHJldmlvdXNfbm9uX3NwYWNlIGlu
ICctKycgYW5kIG5leHQyID09IHByZXZpb3VzX25vbl9zcGFjZToKLSAgICAgICAgICAgICAgICAg
ICAgIyBwcm90ZWN0IGFnYWluc3QgKyArKyBvciAtIC0tIHNlcXVlbmNlcwotICAgICAgICAgICAg
ICAgICAgICBkb19zcGFjZSA9IFRydWUKLSAgICAgICAgICAgICAgICBlbGlmIHNlbGYuaXNfcmV0
dXJuIGFuZCBuZXh0MiA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgICAgICMgcmV0dXJuaW5nIGEg
cmVnZXguLi4KLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQotICAgICAgICAgICAgZWxp
ZiBuZXh0MSA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgaWYgZG9fc3BhY2U6Ci0gICAgICAgICAg
ICAgICAgICAgIHdyaXRlKCcgJykKLSAgICAgICAgICAgICAgICBpZiBpbl9yZToKLSAgICAgICAg
ICAgICAgICAgICAgaWYgcHJldmlvdXMgIT0gJ1xcJyBvciAobm90IGVzY2FwZV9zbGFzaF9jb3Vu
dCAlIDIpIG9yIG5leHQyIGluICdnaW15JzoKLSAgICAgICAgICAgICAgICAgICAgICAgIGluX3Jl
ID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJy8nKQotICAgICAgICAgICAgICAg
IGVsaWYgbmV4dDIgPT0gJy8nOgotICAgICAgICAgICAgICAgICAgICBkb2luZ19zaW5nbGVfY29t
bWVudCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQg
PSBwcmV2aW91c19ub25fc3BhY2UKLSAgICAgICAgICAgICAgICBlbGlmIG5leHQyID09ICcqJzoK
LSAgICAgICAgICAgICAgICAgICAgZG9pbmdfbXVsdGlfY29tbWVudCA9IFRydWUKLSAgICAgICAg
ICAgICAgICAgICAgcHJldmlvdXMgPSBuZXh0MQotICAgICAgICAgICAgICAgICAgICBuZXh0MSA9
IG5leHQyCi0gICAgICAgICAgICAgICAgICAgIG5leHQyID0gcmVhZCgxKQotICAgICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGluX3JlID0gcHJldmlvdXNfbm9uX3NwYWNl
IGluICcoLD06Wz8hJnwnIG9yIHNlbGYuaXNfcmV0dXJuICAjIGxpdGVyYWwgcmVndWxhciBleHBy
ZXNzaW9uCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlKCcvJykKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgaWYgZG9fc3BhY2U6Ci0gICAgICAgICAgICAgICAgICAgIGRvX3Nw
YWNlID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQotICAgICAgICAgICAg
ICAgIGlmIGRvX25ld2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlKCdcbicpCi0gICAg
ICAgICAgICAgICAgICAgIGRvX25ld2xpbmUgPSBGYWxzZQotCi0gICAgICAgICAgICAgICAgd3Jp
dGUobmV4dDEpCi0gICAgICAgICAgICAgICAgaWYgbm90IGluX3JlIGFuZCBuZXh0MSBpbiAiJ1wi
IjoKLSAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGUgPSBuZXh0MQotICAgICAgICAgICAgICAg
ICAgICBxdW90ZV9idWYgPSBbXQotCi0gICAgICAgICAgICBwcmV2aW91cyA9IG5leHQxCi0gICAg
ICAgICAgICBuZXh0MSA9IG5leHQyCi0KLSAgICAgICAgICAgIGlmIHByZXZpb3VzID49ICchJzoK
LSAgICAgICAgICAgICAgICBwcmV2aW91c19ub25fc3BhY2UgPSBwcmV2aW91cwotCi0gICAgICAg
ICAgICBpZiBwcmV2aW91cyA9PSAnXFwnOgotICAgICAgICAgICAgICAgIGVzY2FwZV9zbGFzaF9j
b3VudCArPSAxCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGVzY2FwZV9zbGFz
aF9jb3VudCA9IDAKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBtaW5pZmllciA9
IEphdmFzY3JpcHRNaW5pZnkoc3lzLnN0ZGluLCBzeXMuc3Rkb3V0KQotICAgIG1pbmlmaWVyLm1p
bmlmeSgpCi0gICAgc3lzLnN0ZG91dC53cml0ZSgnXG4nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy94eGQucGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDVlZTA4YTUyZDhlNjZjZmRhM2MwODNmN2FkYjE1Zjk2YzA4YTliMGMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAK
LSMhIC91c3IvYmluL3BlcmwKLQotIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICMgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAjIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgIyBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMKLQotJHZhcm5hbWUgPSBz
aGlmdDsKLSRmbmFtZSA9IHNoaWZ0OwotJG91dHB1dCA9IHNoaWZ0OwotCi1vcGVuKCRpbnB1dCwg
JzwnLCAkZm5hbWUpIG9yIGRpZSAiQ2FuJ3Qgb3BlbiBmaWxlIGZvciByZWFkOiAkZm5hbWUgJCEi
OwotJC8gPSB1bmRlZjsKLSR0ZXh0ID0gPCRpbnB1dD47Ci1jbG9zZSgkaW5wdXQpOwotCi0kdGV4
dCA9IGpvaW4oJywgJywgbWFwKCcweCcgLiB1bnBhY2soIkgqIiwgJF8pLCBzcGxpdCh1bmRlZiwg
JHRleHQpKSk7Ci0KLW9wZW4oJG91dHB1dCwgJz4nLCAkb3V0cHV0KSBvciBkaWUgIkNhbid0IG9w
ZW4gZmlsZSBmb3Igd3JpdGU6ICRvdXRwdXQgJCEiOwotcHJpbnQgJG91dHB1dCAiY29uc3QgdW5z
aWduZWQgY2hhciAkdmFybmFtZVxbXF0gPSB7XG4kdGV4dFxufTtcbiI7Ci1jbG9zZSgkb3V0cHV0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTY3N2MxYWYzZjM5ZDViMGNkZTlmMzcyNWNlNWUz
OTJhNDU5ZWU2ZS4uZGY4NjUwZWNhNDE2Njg1MDQ0MDBjOWExNTkxYjlhNDhmOGQ3MDhkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTgyMCwxNSArODIwLDEyIEBAIHNldChXZWJDb3JlX0lETF9G
SUxFUwogCiBpZiAoV0lOMzIpCiAgICAgaWYgKElOVEVSTkFMX0JVSUxEKQotICAgICAgICBzZXQo
V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vLi4vaW5j
bHVkZS9wcml2YXRlL0phdmFTY3JpcHRDb3JlIikKLSAgICAgICAgc2V0KFdlYkNvcmVfR0VORVJB
VEVfSlNfQlVJTFRJTlNfU0NSSVBUU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vLi4vaW5jbHVk
ZS9wcml2YXRlL0phdmFTY3JpcHRDb3JlIikKKyAgICAgICAgc2V0KEphdmFTY3JpcHRDb3JlX1ND
UklQVFNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9Ly4uL2luY2x1ZGUvcHJpdmF0ZS9KYXZhU2Ny
aXB0Q29yZSIpCiAgICAgZWxzZSAoKQotICAgICAgICBzZXQoV2ViQ29yZV9JTlNQRUNUT1JfU0NS
SVBUU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3Ivc2NyaXB0cyIpCi0gICAg
ICAgIHNldChXZWJDb3JlX0dFTkVSQVRFX0pTX0JVSUxUSU5TX1NDUklQVFNfRElSICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0iKQorICAgICAgICBzZXQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIg
IiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cyIpCiAgICAgZW5kaWYgKCkKIGVsc2UgKCkKLSAgICBzZXQoV2ViQ29yZV9JTlNQRUNU
T1JfU0NSSVBUU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3Ivc2NyaXB0cyIp
Ci0gICAgc2V0KFdlYkNvcmVfR0VORVJBVEVfSlNfQlVJTFRJTlNfU0NSSVBUU19ESVIgIiR7SkFW
QVNDUklQVENPUkVfRElSfSIpCisgICAgc2V0KEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSICIk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vU2NyaXB0cyIpCiBlbmRpZiAoKQogCiBzZXQoV2ViQ29yZV9T
T1VSQ0VTCkBAIC0zMzcwLDEwICszMzY3LDEwIEBAIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxF
U19JRl9FWElTVFMoKQogYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIE9VVFBVVCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaCAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY29tYmluZWQuaHRtbAogICAg
IE1BSU5fREVQRU5ERU5DWSBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbAotICAg
IERFUEVORFMgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBsICR7V2ViQ29y
ZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFu
ZC1zY3JpcHRzLnB5CisgICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS94
eGQucGwgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vaW5saW5lLWFuZC1taW5pZnktc3R5
bGVzaGVldHMtYW5kLXNjcmlwdHMucHkKICAgICBERVBFTkRTIGluc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5UGFnZS5jc3MgaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmpzCi0gICAgQ09N
TUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElS
fS9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAke1dFQkNPUkVf
RElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY29tYmluZWQuaHRtbAotICAgIENP
TU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9
L3h4ZC5wbCBJbnNwZWN0b3JPdmVybGF5UGFnZV9odG1sICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1sICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5oCisgICAgQ09NTUFORCAke1BZ
VEhPTl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9pbmxpbmUtYW5k
LW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAke1dFQkNPUkVfRElSfS9pbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY29tYmluZWQuaHRtbAorICAgIENPTU1BTkQgJHtQRVJM
X0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L3h4ZC5wbCBJbnNwZWN0
b3JPdmVybGF5UGFnZV9odG1sICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0
b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1sICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9JbnNwZWN0b3JPdmVybGF5UGFnZS5oCiAgICAgVkVSQkFUSU0pCiBsaXN0KEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3Rvck92ZXJs
YXlQYWdlLmgpCiAKQEAgLTMzODIsMTAgKzMzNzksMTAgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFn
ZS4KIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmggJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcwogICAgIE1BSU5f
REVQRU5ERU5DWSBpbnNwZWN0b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMKLSAgICBE
RVBFTkRTICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L3h4ZC5wbCAke1dlYkNvcmVf
SU5TUEVDVE9SX1NDUklQVFNfRElSfS9qc21pbi5weQorICAgIERFUEVORFMgJHtKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2pz
bWluLnB5CiAgICAgQ09NTUFORCBlY2hvICIvLyMgc291cmNlVVJMPV9fV2ViSW5zcGVjdG9yQ29t
bWFuZExpbmVBUElNb2R1bGVTb3VyY2VfXyIgPiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWluLmpzCi0gICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS9qc21pbi5weSA8
ICR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5qcyA+
PiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3Vy
Y2UubWluLmpzCi0gICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BF
Q1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBsIENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlX2pzICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5t
aW4uanMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxl
U291cmNlLmgKKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVJ9L2pzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL0NvbW1h
bmRMaW5lQVBJTW9kdWxlU291cmNlLmpzID4+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4uanMKKyAgICBDT01NQU5EICR7UEVSTF9F
WEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS94eGQucGwgQ29tbWFuZExp
bmVBUElNb2R1bGVTb3VyY2VfanMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbW1h
bmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaAogICAgIFZFUkJBVElNKQogbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Db21tYW5k
TGluZUFQSU1vZHVsZVNvdXJjZS5oKQogCkBAIC0zMzk4LDkgKzMzOTUsOSBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbG9yRGF0
YS5jcHApCiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9YTUxWaWV3ZXJDU1MuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vWE1MVmlld2VyLm1pbi5jc3MKICAgICBNQUlOX0RFUEVOREVOQ1kgeG1sL1hNTFZpZXdlci5j
c3MKLSAgICBERVBFTkRTICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L3h4ZC5wbCAk
e1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS9jc3NtaW4ucHkKLSAgICBDT01NQU5EICR7
UFlUSE9OX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2Nzc21p
bi5weSA8ICR7V0VCQ09SRV9ESVJ9L3htbC9YTUxWaWV3ZXIuY3NzID4gJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlci5taW4uY3NzCi0gICAgQ09NTUFORCAke1BFUkxfRVhF
Q1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBsIFhNTFZpZXdl
cl9jc3MgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlci5taW4uY3NzICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXJDU1MuaAorICAgIERFUEVORFMg
JHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsICR7SmF2YVNjcmlwdENvcmVfU0NS
SVBUU19ESVJ9L2Nzc21pbi5weQorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vY3NzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0veG1s
L1hNTFZpZXdlci5jc3MgPiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2Vy
Lm1pbi5jc3MKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSfS94eGQucGwgWE1MVmlld2VyX2NzcyAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vWE1MVmlld2VyLm1pbi5jc3MgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
L1hNTFZpZXdlckNTUy5oCiAgICAgVkVSQkFUSU0pCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlckNTUy5oKQogCkBAIC0z
NDA5LDkgKzM0MDYsOSBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlckNTUy5oKQogYWRkX2N1c3RvbV9jb21tYW5kKAog
ICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VySlMuaCAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyLm1pbi5qcwogICAgIE1BSU5f
REVQRU5ERU5DWSB4bWwvWE1MVmlld2VyLmpzCi0gICAgREVQRU5EUyAke1dlYkNvcmVfSU5TUEVD
VE9SX1NDUklQVFNfRElSfS94eGQucGwgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0v
anNtaW4ucHkKLSAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQ
RUNUT1JfU0NSSVBUU19ESVJ9L2pzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0veG1sL1hNTFZpZXdl
ci5qcyA+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmpzCi0g
ICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRT
X0RJUn0veHhkLnBsIFhNTFZpZXdlcl9qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0v
WE1MVmlld2VyLm1pbi5qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2Vy
SlMuaAorICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsICR7
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2pzbWluLnB5CisgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9qc21pbi5weSA8ICR7
V0VCQ09SRV9ESVJ9L3htbC9YTUxWaWV3ZXIuanMgPiAke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0vWE1MVmlld2VyLm1pbi5qcworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L3h4ZC5wbCBYTUxWaWV3ZXJfanMgJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlci5taW4uanMgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L1hNTFZpZXdlckpTLmgKICAgICBWRVJCQVRJTSkKIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VySlMu
aCkKIApAQCAtMzUwMSw3ICszNDk4LDcgQEAgaWYgKFdlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRT
KQogICAgICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1VzZXJBZ2Vu
dFNjcmlwdHNEYXRhLmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vVXNlckFnZW50
U2NyaXB0cy5oCiAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke1dFQkNPUkVfRElSfS9TY3JpcHRz
L21ha2UtanMtZmlsZS1hcnJheXMucHkKICAgICAgICAgREVQRU5EUyAke1dlYkNvcmVfVVNFUl9B
R0VOVF9TQ1JJUFRTfQotICAgICAgICBDT01NQU5EICJQWVRIT05QQVRIPSR7V2ViQ29yZV9JTlNQ
RUNUT1JfU0NSSVBUU19ESVJ9IiAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9T
Y3JpcHRzL21ha2UtanMtZmlsZS1hcnJheXMucHkgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L1VzZXJBZ2VudFNjcmlwdHMuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vVXNl
ckFnZW50U2NyaXB0c0RhdGEuY3BwICR7V2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFN9CisgICAg
ICAgIENPTU1BTkQgIlBZVEhPTlBBVEg9JHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0iICR7
UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvbWFrZS1qcy1maWxlLWFy
cmF5cy5weSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vVXNlckFnZW50U2NyaXB0cy5o
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Vc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHAg
JHtXZWJDb3JlX1VTRVJfQUdFTlRfU0NSSVBUU30KICAgICAgICAgVkVSQkFUSU0pCiAgICAgbGlz
dChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9V
c2VyQWdlbnRTY3JpcHRzRGF0YS5jcHApCiAgICAgQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURf
REVQRU5ERU5DSUVTKCR7V2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFNfREVQRU5ERU5DSUVTfSBV
c2VyQWdlbnRTY3JpcHRzRGF0YS5jcHAgVXNlckFnZW50U2NyaXB0cy5oKQpAQCAtMzU5Myw5ICsz
NTkwLDkgQEAgZm9yZWFjaCAoX2J1aWx0aW5qcyAke1dFQkNPUkVfSlNfQlVJTFRJTlN9KQogICAg
IGFkZF9jdXN0b21fY29tbWFuZCgKICAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zV3JhcHBlci5oICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9LyR7X25hbWV9QnVpbHRpbnMuY3BwCiAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke1dFQkNP
UkVfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucwotICAgICAgICBERVBFTkRTICR7V2ViQ29yZV9H
RU5FUkFURV9KU19CVUlMVElOU19TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAg
ICAgICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1qcy1i
dWlsdGlucwogICAgICAgICBERVBFTkRTICR7X2J1aWx0aW5qc30KLSAgICAgICAgQ09NTUFORCAk
e1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUt
anMtYnVpbHRpbnMgLS1pbnB1dCAke19idWlsdGluanN9IC0tb3V0cHV0X2RpciAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0gLS1nZW5lcmF0ZV9qc19idWlsdGluc19wYXRoICR7V2ViQ29y
ZV9HRU5FUkFURV9KU19CVUlMVElOU19TQ1JJUFRTX0RJUn0KKyAgICAgICAgQ09NTUFORCAke1BZ
VEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMt
YnVpbHRpbnMgLS1pbnB1dCAke19idWlsdGluanN9IC0tb3V0cHV0X2RpciAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0gLS1nZW5lcmF0ZV9qc19idWlsdGluc19wYXRoICR7SmF2YVNjcmlw
dENvcmVfU0NSSVBUU19ESVJ9CiAgICAgICAgIFZFUkJBVElNKQogICAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtf
bmFtZX1CdWlsdGlucy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0NjY1NGYy
YWQzMTg4OWRiMzQyNTdiZmQ4YzhmYWM5M2UyZGYwNGI1Li4wYmFlOTBhZWRkMDVjZTU4ZWVkNjli
YTdlMDU3NTA1NDFmMzlmYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTg5
Niw4ICs4OTYsOCBAQCBTZWxlY3RvclBzZXVkb0VsZW1lbnRUeXBlTWFwLmNwcCA6ICQoV2ViQ29y
ZSkvY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLgogYWxsIDogWE1MVmlld2VyQ1NT
LmgKIAogWE1MVmlld2VyQ1NTLmggOiB4bWwvWE1MVmlld2VyLmNzcwotCSQoUFlUSE9OKSAkKElu
c3BlY3RvclNjcmlwdHMpL2Nzc21pbi5weSA8IiQoV2ViQ29yZSkveG1sL1hNTFZpZXdlci5jc3Mi
ID4gLi9YTUxWaWV3ZXIubWluLmNzcwotCSQoUEVSTCkgJChJbnNwZWN0b3JTY3JpcHRzKS94eGQu
cGwgWE1MVmlld2VyX2NzcyAuL1hNTFZpZXdlci5taW4uY3NzIFhNTFZpZXdlckNTUy5oCisJJChQ
WVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2Nzc21pbi5weSA8IiQoV2ViQ29y
ZSkveG1sL1hNTFZpZXdlci5jc3MiID4gLi9YTUxWaWV3ZXIubWluLmNzcworCSQoUEVSTCkgJChK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikveHhkLnBsIFhNTFZpZXdlcl9jc3MgLi9YTUxWaWV3
ZXIubWluLmNzcyBYTUxWaWV3ZXJDU1MuaAogCSQoREVMRVRFKSBYTUxWaWV3ZXIubWluLmNzcwog
CiAjIC0tLS0tLS0tCkBAIC05MDcsOCArOTA3LDggQEAgWE1MVmlld2VyQ1NTLmggOiB4bWwvWE1M
Vmlld2VyLmNzcwogYWxsIDogWE1MVmlld2VySlMuaAogCiBYTUxWaWV3ZXJKUy5oIDogeG1sL1hN
TFZpZXdlci5qcwotCSQoUFlUSE9OKSAkKEluc3BlY3RvclNjcmlwdHMpL2pzbWluLnB5IDwiJChX
ZWJDb3JlKS94bWwvWE1MVmlld2VyLmpzIiA+IC4vWE1MVmlld2VyLm1pbi5qcwotCSQoUEVSTCkg
JChJbnNwZWN0b3JTY3JpcHRzKS94eGQucGwgWE1MVmlld2VyX2pzIC4vWE1MVmlld2VyLm1pbi5q
cyBYTUxWaWV3ZXJKUy5oCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIp
L2pzbWluLnB5IDwiJChXZWJDb3JlKS94bWwvWE1MVmlld2VyLmpzIiA+IC4vWE1MVmlld2VyLm1p
bi5qcworCSQoUEVSTCkgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikveHhkLnBsIFhNTFZp
ZXdlcl9qcyAuL1hNTFZpZXdlci5taW4uanMgWE1MVmlld2VySlMuaAogCSQoREVMRVRFKSBYTUxW
aWV3ZXIubWluLmpzCiAKICMgLS0tLS0tLS0KQEAgLTEwMDIsNyArMTAwMiw3IEBAIGlmZGVmIFVT
RVJfQUdFTlRfU0NSSVBUUwogYWxsIDogVXNlckFnZW50U2NyaXB0cy5oCiAKIFVzZXJBZ2VudFNj
cmlwdHMuaCA6IFNjcmlwdHMvbWFrZS1qcy1maWxlLWFycmF5cy5weSAkKFVTRVJfQUdFTlRfU0NS
SVBUUykKLQlQWVRIT05QQVRIPSQoSW5zcGVjdG9yU2NyaXB0cykgJChQWVRIT04pICQ8ICRAIFVz
ZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCAkKFVTRVJfQUdFTlRfU0NSSVBUUykKKwlQWVRIT05QQVRI
PSQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpICQoUFlUSE9OKSAkPCAkQCBVc2VyQWdlbnRT
Y3JpcHRzRGF0YS5jcHAgJChVU0VSX0FHRU5UX1NDUklQVFMpCiBlbmRpZgogCiAjIC0tLS0tLS0t
CkBAIC0xMjE4LDE2ICsxMjE4LDE2IEBAIEpTJS5oIDogJS5pZGwgJChKU19CSU5ESU5HU19TQ1JJ
UFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoV0lORE9XX0NPTlNUUlVDVE9SCiBhbGwgOiBJ
bnNwZWN0b3JPdmVybGF5UGFnZS5oCiAKIEluc3BlY3Rvck92ZXJsYXlQYWdlLmggOiBJbnNwZWN0
b3JPdmVybGF5UGFnZS5odG1sIEluc3BlY3Rvck92ZXJsYXlQYWdlLmNzcyBJbnNwZWN0b3JPdmVy
bGF5UGFnZS5qcwotCSQoUFlUSE9OKSAkKEluc3BlY3RvclNjcmlwdHMpL2lubGluZS1hbmQtbWlu
aWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICQoV2ViQ29yZSkvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXlQYWdlLmh0bWwgLi9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1s
Ci0JJChQRVJMKSAkKEluc3BlY3RvclNjcmlwdHMpL3h4ZC5wbCBJbnNwZWN0b3JPdmVybGF5UGFn
ZV9odG1sIC4vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY29tYmluZWQuaHRtbCBJbnNwZWN0b3JPdmVy
bGF5UGFnZS5oCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2lubGlu
ZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICQoV2ViQ29yZSkvaW5zcGVj
dG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmh0bWwgLi9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21i
aW5lZC5odG1sCisJJChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwg
SW5zcGVjdG9yT3ZlcmxheVBhZ2VfaHRtbCAuL0luc3BlY3Rvck92ZXJsYXlQYWdlLmNvbWJpbmVk
Lmh0bWwgSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaAogCSQoREVMRVRFKSBJbnNwZWN0b3JPdmVybGF5
UGFnZS5jb21iaW5lZC5odG1sCiAKIGFsbCA6IENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmgK
IAogQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaCA6IENvbW1hbmRMaW5lQVBJTW9kdWxlU291
cmNlLmpzCiAJZWNobyAiLy8jIHNvdXJjZVVSTD1fX1dlYkluc3BlY3RvckNvbW1hbmRMaW5lQVBJ
TW9kdWxlU291cmNlX18iID4gLi9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4uanMKLQkk
KFBZVEhPTikgJChJbnNwZWN0b3JTY3JpcHRzKS9qc21pbi5weSA8JChXZWJDb3JlKS9pbnNwZWN0
b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMgPj4gLi9Db21tYW5kTGluZUFQSU1vZHVs
ZVNvdXJjZS5taW4uanMKLQkkKFBFUkwpICQoSW5zcGVjdG9yU2NyaXB0cykveHhkLnBsIENvbW1h
bmRMaW5lQVBJTW9kdWxlU291cmNlX2pzIC4vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWlu
LmpzIENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUikvanNtaW4ucHkgPCQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvbW1hbmRM
aW5lQVBJTW9kdWxlU291cmNlLmpzID4+IC4vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWlu
LmpzCisJJChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwgQ29tbWFu
ZExpbmVBUElNb2R1bGVTb3VyY2VfanMgLi9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4u
anMgQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaAogCSQoREVMRVRFKSBDb21tYW5kTGluZUFQ
SU1vZHVsZVNvdXJjZS5taW4uanMKIAogIyBXZWIgUmVwbGF5IGlucHV0cyBnZW5lcmF0b3IKQEAg
LTEyNjMsNyArMTI2Myw3IEBAIFdFQkNPUkVfSlNfQlVJTFRJTlMgPSBcCiBhbGwgOiAkKFdFQkNP
UkVfSlNfQlVJTFRJTlM6JS5qcz0lQnVpbHRpbnMuY3BwKQogCiAlQnVpbHRpbnMuY3BwOiAlLmpz
Ci0JJChQWVRIT04pICQoV2ViQ29yZSkvZ2VuZXJhdGUtanMtYnVpbHRpbnMgLS1pbnB1dCAkPCAt
LWdlbmVyYXRlX2pzX2J1aWx0aW5zX3BhdGggJChHZW5lcmF0ZUpTQnVpbHRpbnNTY3JpcHRzKQor
CSQoUFlUSE9OKSAkKFdlYkNvcmUpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQgJDwgLS1n
ZW5lcmF0ZV9qc19idWlsdGluc19wYXRoICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpCiAK
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MzFmZGEwMTBmNTc2N2JjNTM0Y2Vj
M2VlNmI4OGZhODU2MTE1ODYzLi41NTk1N2MxYzk3MzhmZDUzYjhkOTk4MDc0YzQyZGM2YTI3ZTBm
ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yODE2OCw3ICsyODE2OCw3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hl
bGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZVwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdlYkNvcmVcbmV4cG9ydCBX
ZWJDb3JlPVwiV2ViQ29yZVwiXG5leHBvcnQgSW5zcGVjdG9yU2NyaXB0cz1cIiR7SkFWQVNDUklQ
VENPUkVfUFJJVkFURV9IRUFERVJTX0RJUn1cIlxuZXhwb3J0IFdlYlJlcGxheVNjcmlwdHM9XCIk
e0pBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJ9XCJcbmV4cG9ydCBHZW5lcmF0ZUpT
QnVpbHRpbnNTY3JpcHRzPVwiJHtKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSfVwi
XG5cbmlmIFsgISAkQ0MgXTsgdGhlblxuICAgIGV4cG9ydCBDQz1cImB4Y3J1biAtZmluZCBjbGFu
Z2BcIlxuZmlcblxuaWYgWyAhICRHUEVSRiBdOyB0aGVuXG4gICAgZXhwb3J0IEdQRVJGPVwiYHhj
cnVuIC1maW5kIGdwZXJmYFwiXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIg
LW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3Rh
bGxoZHJzXCIgXTsgdGhlblxuICAgIG1ha2UgIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2
ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmlcbiI7CisJCQlzaGVsbFNjcmlwdCA9ICJt
a2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlXCJc
bmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmVcIlxuXG4v
YmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV2ViQ29yZVxuZXhwb3J0IFdlYkNvcmU9XCJXZWJD
b3JlXCJcbmV4cG9ydCBKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUj1cIiR7SkFWQVNDUklQVENP
UkVfUFJJVkFURV9IRUFERVJTX0RJUn1cIlxuZXhwb3J0IFdlYlJlcGxheVNjcmlwdHM9XCIke0pB
VkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJ9XCJcblxuaWYgWyAhICRDQyBdOyB0aGVu
XG4gICAgZXhwb3J0IENDPVwiYHhjcnVuIC1maW5kIGNsYW5nYFwiXG5maVxuXG5pZiBbICEgJEdQ
RVJGIF07IHRoZW5cbiAgICBleHBvcnQgR1BFUkY9XCJgeGNydW4gLWZpbmQgZ3BlcmZgXCJcbmZp
XG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJp
bnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiBdOyB0aGVuXG4gICAg
bWFrZSAgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
XCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtS
T09UfVwiXG5maVxuIjsKIAkJfTsKIC8qIEVuZCBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2Vj
dGlvbiAqLwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263347</attachid>
            <date>2015-10-16 16:27:56 -0700</date>
            <delta_ts>2015-10-19 11:02:34 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-150245-20151016162717.patch</filename>
            <type>text/plain</type>
            <size>127416</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YjQ1OGYwYmIzN2YzZTg4MmVkMTNiNWQ2NTkzZmE0NTM2OTE3NDQyLi4zY2UwNWE2MGMzNmFkZmEw
YmY4NjI3OTZkMDEyMWQ3MmNiZDQ3NmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0xMC0xNiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVbmlmeSBoYW5kbGluZyBvZiBKYXZhU2NyaXB0Q29yZSBzY3JpcHRzIHRoYXQgYXJl
IHVzZWQgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUwMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSBhbGwgc3RhbmRhbG9uZSBKYXZhU2NyaXB0Q29yZSBzY3JpcHRzIHRoYXQg
YXJlIHVzZWQgYnkgV2ViQ29yZSBpbnRvIHRoZQorICAgICAgICBKYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzIGRpcmVjdG9yeS4gVXNlIEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSIHRvIHJlZmVyCisg
ICAgICAgIHRvIHRoZSBwYXRoIGZvciB0aGVzZSBzY3JpcHRzLgorCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKworICAgICAgICAgICAgRGVmaW5lIGFuZCB1c2UgSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICAgICBNYWtlIGEgbmV3IGdyb3VwIGluIHRoZSBYY29k
ZSBwcm9qZWN0IGFuZCBjbGVhbiB1cCByZWZlcmVuY2VzLgorCisgICAgICAgICogUGxhdGZvcm1X
aW4uY21ha2U6CisKKyAgICAgICAgICAgIEZvciBXaW5kb3dzLCBjb3B5IHRoZXNlIHNjcmlwdHMg
b3ZlciB0byBGb3J3YXJkaW5nSGVhZGVycy9TY3JpcHRzIHNpbmNlIHRoZXkKKyAgICAgICAgICAg
IGNhbm5vdCBiZSB1c2VkIGRpcmVjdGx5IGZyb20gSkFWQVNDUklQVENPUkVfRElSIGluIEFwcGxl
V2luIGJ1aWxkcy4gRG8gdGhlIHNhbWUKKyAgICAgICAgICAgIHRoaW5nIGZvciBib3RoIFdpbmRv
d3MgdmFyaWFudHMgdG8gYmUgY29uc2lzdGVudCBhYm91dCBpdC4KKworICAgICAgICAqIFNjcmlw
dHMvY3NzbWluLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2Nzc21pbi5weS4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVk
LWluc3BlY3Rvci1qc29uLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5LgorICAg
ICAgICAqIFNjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnM6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMuCisgICAgICAgICogU2NyaXB0cy9p
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weTogUmVuYW1lZCBmcm9t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlm
eS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weS4KKyAgICAgICAgKiBTY3JpcHRzL2pzbWluLnB5
OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2pz
bWluLnB5LgorICAgICAgICAqIFNjcmlwdHMveHhkLnBsOiBSZW5hbWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbC4KKwogMjAxNS0xMC0xNiAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBp
c3N1ZXMgd2l0aCBUeXBlZEFycmF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg5NzBhNjM5YmIzMjQ3ZDJkYTcz
ZDNhNjg0MGEwZjI5MjNkYjE4YmEuLjEzYWJhODhlMGMwNTFlNjFlMDljZWRlZWI3OGQ2ZjhiNjI5
YjRlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0xMC0xNiAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbmlmeSBoYW5kbGluZyBvZiBKYXZhU2Ny
aXB0Q29yZSBzY3JpcHRzIHRoYXQgYXJlIHVzZWQgaW4gV2ViQ29yZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMjQ1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIgdmFyaWFibGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAgICAgTm8gbmVlZCB0byBleHBvcnQgb3RoZXIg
dmFyaWFibGVzIGxpa2UgSW5zcGVjdG9yU2NyaXB0cyBhbnltb3JlLgorCiAyMDE1LTEwLTE2ICBL
ZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgdmFsdWUgc2Fu
aXRpemF0aW9uIGFsZ29yaXRobSBmb3IgaW5wdXRbdHlwZT11cmxdIHNob3VsZCBzdHJpcCB3aGl0
ZXNwYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJjMDFkYzhiMGQy
ZjE0NjMyZjFkYjM0MjI4ZDZjZjEwNzVkYmFiZmQuLjUyMmNhZGJkODkwMWRkNjI1MTYzYjk1Mzdj
ZWE1Zjc4ZTRiYzlhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTY5
OSw2ICs2OTksOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfTFVUX0ZJTEVTCiAgICAgcnVudGltZS9T
eW1ib2xQcm90b3R5cGUuY3BwCiApCiAKK3NldChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUiAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L1NjcmlwdHMiKQorCiBzZXQoSmF2YVNjcmlwdENvcmVfTElC
UkFSSUVTCiAgICAgV1RGJHtERUJVR19TVUZGSVh9CiAgICAgJHtJQ1VfSTE4Tl9MSUJSQVJJRVN9
CkBAIC05MzgsNyArOTQwLDcgQEAgc2V0KEhBU0hfTFVUX0dFTkVSQVRPUiAke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0vY3JlYXRlX2hhc2hfdGFibGUpCiBtYWNybyhHRU5FUkFURV9IQVNIX0xV
VCBfaW5wdXQgX291dHB1dCkKICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgICAgIE9VVFBV
VCAke19vdXRwdXR9Ci0gICAgICAgIERFUEVORFMgJHtIQVNIX0xVVF9HRU5FUkFUT1J9ICR7X2lu
cHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAg
ICAgICAgREVQRU5EUyAke0hBU0hfTFVUX0dFTkVSQVRPUn0gJHtfaW5wdXR9ICR7SmF2YVNjcmlw
dENvcmVfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCiAgICAgICAgIENPTU1BTkQg
JHtQRVJMX0VYRUNVVEFCTEV9ICR7SEFTSF9MVVRfR0VORVJBVE9SfSAke19pbnB1dH0gLWkgPiAk
e19vdXRwdXR9CiAgICAgICAgIFZFUkJBVElNKQogICAgIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRD
b3JlX0hFQURFUlMgJHtfb3V0cHV0fSkKQEAgLTEwNTUsOSArMTA1Nyw5IEBAIGVuZGlmICgpCiAK
IGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfS9Db21iaW5lZERvbWFpbnMuanNvbgotICAgIE1BSU5fREVQRU5ERU5DWSAk
e0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtY29tYmluZWQt
aW5zcGVjdG9yLWpzb24ucHkKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUn0vZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkKICAgICBERVBF
TkRTICR7SmF2YVNjcmlwdENvcmVfSU5TUEVDVE9SX0RPTUFJTlN9Ci0gICAgQ09NTUFORCAke1BZ
VEhPTl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0v
Z2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgJHtKYXZhU2NyaXB0Q29yZV9JTlNQ
RUNUT1JfRE9NQUlOU30gPiAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0Nv
bWJpbmVkRG9tYWlucy5qc29uCisgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0ph
dmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNv
bi5weSAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9ET01BSU5TfSA+ICR7REVSSVZFRF9TT1VS
Q0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vQ29tYmluZWREb21haW5zLmpzb24KICAgICBWRVJCQVRJ
TSkKIAogIyBJbnNwZWN0b3IgQmFja2VuZCBEaXNwYXRjaGVycywgRnJvbnRlbmQgRGlzcGF0Y2hl
cnMsIFR5cGUgQnVpbGRlcnMKQEAgLTExMDAsOSArMTEwMiw5IEBAIHNldChKYXZhU2NyaXB0Q29y
ZV9CVUlMVElOU19TT1VSQ0VTCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgIE9VVFBVVCAke0RF
UklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1aWx0aW5zLmNwcCAke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1aWx0aW5zLmgKLSAgIE1BSU5fREVQ
RU5ERU5DWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMK
KyAgIE1BSU5fREVQRU5ERU5DWSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0
ZS1qcy1idWlsdGlucwogICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJD
RVN9Ci0gICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0LWRpcmVjdG9yeSAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vYnVpbHRpbnMgLS1vdXRwdXQgJHtERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGlucy5jcHAKKyAgIENPTU1BTkQgJHtQWVRIT05fRVhF
Q1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRp
bnMgLS1pbnB1dC1kaXJlY3RvcnkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2J1aWx0aW5z
IC0tb3V0cHV0ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vSlNDQnVpbHRp
bnMuY3BwCiAgICBWRVJCQVRJTSkKIAogbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfU09VUkNF
UwpAQCAtMTEyMiwxMCArMTEyNCwxMCBAQCBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9IRUFE
RVJTCiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0pB
VkFTQ1JJUFRDT1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCAke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9L0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5qcwogICAgIE1B
SU5fREVQRU5ERU5DWSAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzCi0gICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9TQ1JJ
UFRTX0RJUn0veHhkLnBsICR7SmF2YVNjcmlwdENvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS9q
c21pbi5weQorICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBs
ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2pzbWluLnB5CiAgICAgQ09NTUFORCBlY2hv
ICIvLyMgc291cmNlVVJMPV9fV2ViSW5zcGVjdG9ySW5qZWN0ZWRTY3JpcHRfXyIgPiAke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5q
cwotICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9JTlNQ
RUNUT1JfU0NSSVBUU19ESVJ9L2pzbWluLnB5IDwgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyA+PiAke0RFUklWRURfU09VUkNFU19KQVZBU0NS
SVBUQ09SRV9ESVJ9L0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5qcwotICAgIENPTU1BTkQgJHtQ
RVJMX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS94
eGQucGwgSW5qZWN0ZWRTY3JpcHRTb3VyY2VfanMgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQ
VENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMgJHtERVJJVkVEX1NPVVJDRVNf
SkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5oCisgICAgQ09NTUFORCAk
e1BZVEhPTl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9qc21pbi5w
eSA8ICR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMgPj4gJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlw
dFNvdXJjZS5taW4uanMKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke0phdmFTY3Jp
cHRDb3JlX1NDUklQVFNfRElSfS94eGQucGwgSW5qZWN0ZWRTY3JpcHRTb3VyY2VfanMgJHtERVJJ
VkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4u
anMgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNv
dXJjZS5oCiAgICAgVkVSQkFUSU0pCiAKIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0hFQURF
UlMgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNv
dXJjZS5oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAw
NDY2OGRlNWJjOTA4MzVjZjhjMDI0ZmI1ZGI4M2RhOTQ5MWUzNWYzLi45MDkxMTJkNDBmNGRmZTJk
ZmRlYTRkNGJjNzkwOGIyOWI0Mzk2OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtNzgsNiArNzgsOCBAQCBhbGwgOiBcCiBQWVRIT04gPSBweXRob24K
IFBFUkwgPSBwZXJsCiAKK0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSID0gJChKYXZhU2NyaXB0
Q29yZSkvU2NyaXB0cworCiBpZmVxICgkKE9TKSxXaW5kb3dzX05UKQogICAgIERFTEVURSA9IGNt
ZCAvL0MgZGVsCiBlbHNlCkBAIC04Niw5ICs4OCw5IEBAIGVuZGlmCiAjIC0tLS0tLS0tCiAKIC5Q
SE9OWTogSlNDQnVpbHRpbnMKLUpTQ0J1aWx0aW5zOiAkKEphdmFTY3JpcHRDb3JlKS9nZW5lcmF0
ZS1qcy1idWlsdGlucyBKU0NCdWlsdGlucy5oIEpTQ0J1aWx0aW5zLmNwcAotSlNDQnVpbHRpbnMu
aDogJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdGUtanMtYnVpbHRpbnMgJChKYXZhU2NyaXB0Q29y
ZSkvYnVpbHRpbnMgSlNDQnVpbHRpbnNTb3VyY2VzCi0JJChQWVRIT04pICQoSmF2YVNjcmlwdENv
cmUpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQtZGlyZWN0b3J5ICQoSmF2YVNjcmlwdENv
cmUpL2J1aWx0aW5zIC0tb3V0cHV0ICRACitKU0NCdWlsdGluczogJChKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMgSlNDQnVpbHRpbnMuaCBKU0NCdWlsdGlu
cy5jcHAKK0pTQ0J1aWx0aW5zLmg6ICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVy
YXRlLWpzLWJ1aWx0aW5zICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zIEpTQ0J1aWx0aW5zU291
cmNlcworCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9nZW5lcmF0ZS1q
cy1idWlsdGlucyAtLWlucHV0LWRpcmVjdG9yeSAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucyAt
LW91dHB1dCAkQAogCiBKU0NCdWlsdGlucy5jcHA6IEpTQ0J1aWx0aW5zLmgKIApAQCAtMTg1LDgg
KzE4Nyw4IEBAIElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUyA9IFwKIAkkKEphdmFTY3JpcHRD
b3JlKS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkgXAog
CSQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yLnB5
IFwKIAkkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL21vZGVscy5w
eSBcCi0JJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkgXAogCSQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3Jp
cHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSBcCisJJChKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkg
XAogIwogCiBhbGwgOiBcCkBAIC0yMDIsMTcgKzIwNCwxNyBAQCBhbGwgOiBcCiBFbmFibGVkSW5z
cGVjdG9yRG9tYWlucyA6ICQoSmF2YVNjcmlwdENvcmUpL1VwZGF0ZUNvbnRlbnRzLnB5IGZvcmNl
CiAJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmUpL1VwZGF0ZUNvbnRlbnRzLnB5ICckKElOU1BF
Q1RPUl9ET01BSU5TKScgJEAKIAotQ29tYmluZWREb21haW5zLmpzb24gOiBpbnNwZWN0b3Ivc2Ny
aXB0cy9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAkKElOU1BFQ1RPUl9ET01B
SU5TKSBFbmFibGVkSW5zcGVjdG9yRG9tYWlucwotCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3Jl
KS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAk
KElOU1BFQ1RPUl9ET01BSU5TKSA+IC4vQ29tYmluZWREb21haW5zLmpzb24KK0NvbWJpbmVkRG9t
YWlucy5qc29uIDogJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkgJChJTlNQRUNUT1JfRE9NQUlOUykgRW5hYmxlZEluc3BlY3Rv
ckRvbWFpbnMKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJh
dGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgJChJTlNQRUNUT1JfRE9NQUlOUykgPiAuL0Nv
bWJpbmVkRG9tYWlucy5qc29uCiAKICMgSW5zcGVjdG9yIEJhY2tlbmQgRGlzcGF0Y2hlcnMsIEZy
b250ZW5kIERpc3BhdGNoZXJzLCBUeXBlIEJ1aWxkZXJzCiBJbnNwZWN0b3JGcm9udGVuZERpc3Bh
dGNoZXJzLmggOiBDb21iaW5lZERvbWFpbnMuanNvbiAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NS
SVBUUykKIAkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5IC0tZnJhbWV3b3JrIEphdmFTY3Jp
cHRDb3JlIC0tb3V0cHV0RGlyIC4gLi9Db21iaW5lZERvbWFpbnMuanNvbgogCi1JbmplY3RlZFNj
cmlwdFNvdXJjZS5oIDogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzICQoSmF2YVNj
cmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL2pzbWluLnB5ICQoSmF2YVNjcmlwdENvcmUpL2lu
c3BlY3Rvci9zY3JpcHRzL3h4ZC5wbAorSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCA6IGluc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9q
c21pbi5weSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwKIAllY2hvICIvLyMg
c291cmNlVVJMPV9fV2ViSW5zcGVjdG9ySW5qZWN0ZWRTY3JpcHRfXyIgPiAuL0luamVjdGVkU2Ny
aXB0U291cmNlLm1pbi5qcwotCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3Iv
c2NyaXB0cy9qc21pbi5weSA8ICQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdFNvdXJjZS5qcyA+PiAuL0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5qcwotCSQoUEVSTCkg
JChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMveHhkLnBsIEluamVjdGVkU2NyaXB0
U291cmNlX2pzIC4vSW5qZWN0ZWRTY3JpcHRTb3VyY2UubWluLmpzIEluamVjdGVkU2NyaXB0U291
cmNlLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvanNtaW4ucHkg
PCAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgPj4g
Li9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMKKwkkKFBFUkwpICQoSmF2YVNjcmlwdENvcmVf
U0NSSVBUU19ESVIpL3h4ZC5wbCBJbmplY3RlZFNjcmlwdFNvdXJjZV9qcyAuL0luamVjdGVkU2Ny
aXB0U291cmNlLm1pbi5qcyBJbmplY3RlZFNjcmlwdFNvdXJjZS5oCiAJJChERUxFVEUpIEluamVj
dGVkU2NyaXB0U291cmNlLm1pbi5qcwogCiAjIFdlYiBSZXBsYXkgaW5wdXRzIGdlbmVyYXRvcgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZjM0MjRmOTIzMDhiODgyNTgyMzI5ZDNi
YmYyNDlkNDc1MWMxNzYwLi4wNTY2MzZjZjIzYTBmZjliOGVkZDc4OGQ1NjFmMTQ0OWQ5N2MwODMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTU2LDcgKzk1Niw2IEBACiAJCTJB
REZBMjYzMThFRjM1NDAwMDRGOUZDQyAvKiBHQ0xvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFERkEyNjIxOEVGMzU0MDAwNEY5RkNDIC8q
IEdDTG9nZ2luZy5jcHAgKi87IH07CiAJCTJBRjczODJDMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1
Y3R1cmVJRFRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJBRjczODJBMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmNwcCAq
LzsgfTsKIAkJMkFGNzM4MkQxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRjczODJCMThC
QkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMkRGQjhBRkUxQkIzMjNCRDAwOTNEMjM3IC8q
IGdlbmVyYXRlLWpzLWJ1aWx0aW5zIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTcxREE4MEQxODgwRDcxRjAwRDFGMjk5IC8qIGdlbmVyYXRlLWpzLWJ1aWx0
aW5zICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3
MUQ4NDJEMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8q
IGxpYnouZHlsaWIgKi87IH07CiAJCTQxMzU5Q0YzMEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29u
dmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDIxMjAyMjkwQUQ0MzEwQzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi87IH07CiAJCTQx
REVBMTMyMUI5RjMxNjMwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAv
KiBCdWlsdGluVXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTIxNSw2ICsxMjE0LDEyIEBACiAJCTk3ODgwMTQxMTQ3MUFEOTIwMDQxQjAx
NiAvKiBKU0RhdGVNYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5Nzg4RkMyMzE0NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5MjhGRjNCMThBQzRB
RUMwMEI4Q0YxMiAvKiBKU1JlcGxheUlucHV0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTI4RkYzOTE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBs
YXlJbnB1dHMuY3BwICovOyB9OwogCQk5OTI4RkYzQzE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBs
YXlJbnB1dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk5MjhGRjNBMThBQzRBRUMwMEI4Q0YxMiAvKiBKU1JlcGxheUlucHV0cy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5NTlFOTJCMUJEMTdGQTQw
MDFBQTQxMyAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTU5RTkyNzFCRDE3RkEwMDAxQUE0MTMgLyogY3NzbWluLnB5ICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5NTlFOTJDMUJEMTdG
QTQwMDFBQTQxMyAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTlFOTI4MUJEMTdGQTAwMDFBQTQxMyAvKiBnZW5l
cmF0ZS1qcy1idWlsdGlucyAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5OTU5RTkyRDFCRDE3RkE0MDAxQUE0MTMgLyoganNtaW4ucHkgaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU5RTkyOTFCRDE3RkEwMDAx
QUE0MTMgLyoganNtaW4ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOTk1OUU5MkUxQkQxN0ZBNDAwMUFBNDEzIC8qIHh4ZC5wbCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTlFOTJBMUJEMTdGQTAwMDFB
QTQxMyAvKiB4eGQucGwgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTk1OUU5MzExQkQxODI3MjAwMUFBNDEzIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWlu
c3BlY3Rvci1qc29uLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTk1OUU5MkYxQkQxODFGNjAwMUFBNDEzIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWluc3Bl
Y3Rvci1qc29uLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTk5NTlFOTMyMUJEMTgyNzkwMDFBQTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHls
ZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5NTlFOTMwMUJEMTgxRjYwMDFBQTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlm
eS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5OTYyMzFFOTE4RDE4MDQyMDBDMDNGREEgLyogSW5zcGVj
dG9yQmFja2VuZENvbW1hbmRzLmpzIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTUzMjQzOTYxODU2QTQ3NTAwMkVENjkyIC8qIEluc3BlY3RvckJhY2tlbmRD
b21tYW5kcy5qcyAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5OUNDMEI2MjE4QkU5OTQ2MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0
c1RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5RTQ1QTFFMThBMUIxRTcwMDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRz
VGVtcGxhdGVzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTk5Q0MwQjYzMThCRTk5NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5w
dXRzLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlF
NDVBMUQxOEExQjFFNzAwMjZEODhGIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkgKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyOTYsNyAr
MTMwMSw2IEBACiAJCUE1MzI0MzhBMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVu
ZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNTMyNDM4NDE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRj
aGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE1MzI0MzhCMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUzMjQzODUx
ODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi87IH07CiAJ
CUE1MzI0MzhDMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzI0Mzg2MTg1
NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNTMyNDM5NDE4NTY5NzA5MDAy
RUQ2OTIgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTMyNDM5MTE4NTY5NkU2MDAyRUQ2
OTIgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTUzMjQzOTgxODU2QTQ4OTAwMkVE
NjkyIC8qIENvbWJpbmVkRG9tYWlucy5qc29uIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTUzMjQzOTUxODU2QTQ3NTAwMkVENjkyIC8qIENvbWJpbmVkRG9t
YWlucy5qc29uICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE1MzM5RUM2MUJCMzk5QTYwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzM5RUM1MUJCMzk5
OTAwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTMzOUVDNzFCQjM5OUE5MDA1NEYwMDUgLyog
SW5zcGVjdG9ySGVhcEFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1MzM5RUM0MUJCMzk5OTAwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdl
bnQuY3BwICovOyB9OwpAQCAtMTMzMSwxMCArMTMzNSw2IEBACiAJCUE1ODQwMzIwMThCRkZCRTEw
MDVBMDgxMSAvKiBJbnNwZWN0b3JBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTVDRUVFMTMxODdGM0JBRDAwRTU1Qzk5IC8qIEluc3BlY3RvckFn
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTU4NDBFMjAxODdCN0I4NjAwODQzQjEwIC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODQwRTFFMTg3QjdC
ODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAgKi87IH07CiAJCUE1ODQwRTIx
MTg3QjdCODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NDBFMUYxODdCN0I4NjAwODQzQjEw
IC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTU4NDBFMjcxODdDOTgxRTAwODQzQjEwIC8qIGNzc21pbi5w
eSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODQwRTI2
MTg3Qzk4MDcwMDg0M0IxMCAvKiBjc3NtaW4ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTU4NDBFMjkxODdDQTVFNjAwODQzQjEwIC8qIGlubGlu
ZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5IGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NDBFMjgxODdDQTVCODAwODQzQjEwIC8q
IGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE1ODQwRTJBMTg3Q0E3NTkw
MDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNTEzRTVDNTE4NUY5MkYwMDA3RTk1QUQgLyogeHhkLnBsICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE1ODQwRTJCMTg3Q0E3NUIwMDg0
M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1MTNFNUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNThDMDI0MjE4RTRBNDFBMDAw
MzJCQzUgLyogSlNDb250ZXh0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU4QzAyNDExOEU0QTQxQTAwMDMyQkM1IC8qIEpTQ29udGV4dFBy
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNThFMzU5MTE4NjBERUNGMDAxRjI0RkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1OEUzNTkwMTg2MERF
QzcwMDFGMjRGRSAvKiBJbmplY3RlZFNjcmlwdEhvc3QuY3BwICovOyB9OwogCQlBNTkzQ0Y3QzE4
NDAzNjAzMDBCRkNFMjcgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU5M0NGN0ExODQwMzYwMzAw
QkZDRTI3IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLzsgfTsKQEAgLTMxMjQs
NiArMzEyNCwxMiBAQAogCQk5OTI4RkYzOTE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBsYXlJbnB1
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXBsYXlJbnB1
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTI4RkYzQTE4QUM0QUVDMDBC
OENGMTIgLyogSlNSZXBsYXlJbnB1dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNSZXBsYXlJbnB1dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyOEZG
M0QxOEFDNEIxQzAwQjhDRjEyIC8qIEpTSW5wdXRzLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmpzb247
IHBhdGggPSBKU0lucHV0cy5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTU5
RTkyNzFCRDE3RkEwMDAxQUE0MTMgLyogY3NzbWluLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
cHl0aG9uOyBwYXRoID0gY3NzbWluLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTU5RTkyODFCRDE3RkEwMDAxQUE0MTMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtanMtYnVpbHRpbnMiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTU5RTkyOTFCRDE3RkEwMDAxQUE0MTMgLyoganNt
aW4ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBqc21pbi5weTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk1OUU5MkExQkQxN0ZBMDAwMUFBNDEzIC8qIHh4
ZC5wbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBlcmw7IHBhdGggPSB4eGQucGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NTlFOTJGMUJEMTgxRjYwMDFBQTQxMyAvKiBnZW5lcmF0
ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhv
bjsgcGF0aCA9ICJnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NTlFOTMwMUJEMTgxRjYwMDFBQTQxMyAvKiBpbmxpbmUt
YW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9ICJpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2Ny
aXB0cy5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RTQ1QTFEMThBMUIxRTcw
MDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQucHl0aG9uOyBwYXRoID0gQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNDVBMUUxOEExQjFFNzAwMjZEODhGIC8qIENvZGVH
ZW5lcmF0b3JSZXBsYXlJbnB1dHNUZW1wbGF0ZXMucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5w
eXRob247IHBhdGggPSBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU0NUExRjE4QTFCMjU5MDAyNkQ4OEYgLyogRW1w
dHlJbnB1dEN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eUlu
cHV0Q3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTkyLDggKzMxOTgs
NiBAQAogCQlBNTEzRTVCQzE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbmpl
Y3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTEzRTVCRDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUxM0U1QzMxODVG
OTJDOTAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE1MTNFNUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnB5dGhvbjsgcGF0aCA9IGpzbWluLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBNTEzRTVDNTE4NUY5MkYwMDA3RTk1QUQgLyogeHhkLnBsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQucGVybDsgcGF0aCA9IHh4ZC5wbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTUxM0U1QzYxODVGOTQzNjAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0U291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MTNFNUM4MTg1Rjk2MjQwMDdFOTVBRCAvKiBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTUxM0U1QzkxODVGOTYyNDAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0TWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdE1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMDYsNyArMzIxMCw2IEBACiAJCUE1MzI0
Mzg1MTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTUzMjQzODYxODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclBy
b3RvY29sT2JqZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUzMjQzOEQxODU2OTZDQTAwMkVENjky
IC8qIHByb3RvY29sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZm9sZGVyOyBwYXRoID0gcHJvdG9jb2w7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE1MzI0MzkxMTg1Njk2RTYwMDJFRDY5MiAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0
b3ItanNvbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9ICJnZW5lcmF0
ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1MzI0Mzk1MTg1NkE0NzUwMDJFRDY5MiAvKiBDb21iaW5lZERvbWFpbnMuanNvbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuanNvbjsgcGF0aCA9IENvbWJpbmVkRG9tYWlucy5qc29uOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNTMyNDM5NjE4NTZBNDc1MDAyRUQ2OTIgLyogSW5zcGVjdG9y
QmFja2VuZENvbW1hbmRzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNTMzOUVDNDFCQjM5OTkwMDA1NEYwMDUgLyogSW5zcGVjdG9ySGVhcEFnZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckhlYXBBZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjM5LDggKzMyNDIsNiBAQAogCQlB
NTdEMjNGMDE4OTFCNUI0MDAzMUM3RkEgLyogQ29udGVudFNlYXJjaFV0aWxpdGllcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50U2VhcmNoVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1ODQwRTFFMTg3QjdCODYwMDg0M0IxMCAvKiBJ
bmplY3RlZFNjcmlwdE1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1ODQwRTFGMTg3QjdCODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdE1vZHVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTg0MEUyNjE4N0M5ODA3MDA4NDNCMTAgLyog
Y3NzbWluLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gY3NzbWluLnB5
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTg0MEUyODE4N0NBNUI4MDA4NDNCMTAg
LyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVl
dHMtYW5kLXNjcmlwdHMucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNThDMDI0
MTE4RTRBNDFBMDAwMzJCQzUgLyogSlNDb250ZXh0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0NvbnRleHRQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE1OEUzNTkwMTg2MERFQzcwMDFGMjRGRSAvKiBJbmplY3RlZFNjcmlwdEhvc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU5M0NGN0ExODQwMzYwMzAwQkZDRTI3IC8qIEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMzMTksNyArMzMyMCw2IEBACiAJCUE3MTIzNkU0MTE5NUYzM0MwMEJEMjE3NCAv
KiBKSVRPcGNvZGVzMzJfNjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSklUT3Bjb2RlczMyXzY0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcx
OEY2MUExMTc1NEEyMTAwMjQ2NUE3IC8qIFJlZ0V4cEppdFRhYmxlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBKaXRUYWJsZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTcxOEY4MjExMTc4RUI0QjAwMjQ2NUE3IC8qIGNyZWF0ZV9yZWdleF90YWJs
ZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnB5dGhvbjsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IGNyZWF0ZV9yZWdleF90YWJs
ZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3MURBODBEMTg4MEQ3MUYwMEQxRjI5
OSAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsg
cGF0aCA9ICJnZW5lcmF0ZS1qcy1idWlsdGlucyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3MjAyOEI0MTc5NzYwMUUwMDk4MDI4QyAvKiBKU0NUZXN0UnVubmVyVXRpbHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDVGVzdFJ1bm5lclV0aWxzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyMDI4QjUxNzk3NjAxRTAwOTgwMjhD
IC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NUZXN0UnVubmVyVXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcy
MDI4QjkxNzk3NjAzRDAwOTgwMjhDIC8qIEpTRnVuY3Rpb25JbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRnVuY3Rpb25JbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zODIyLDkgKzM4MjIsOSBAQAogCQkwMzQ3NjhERkZGMzhBNTA0MTFE
QjlDOEIgLyogUHJvZHVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgKi8sCiAJCQkJOTMyRjVCRTEwODIyQTFDNzAwNzM2OTc1IC8qIGpzYyAqLywKIAkJCQkw
RkY5MjJDRjE0RjQ2QjEzMDA0MUEyNEUgLyogSlNDTExJbnRPZmZzZXRzRXh0cmFjdG9yICovLAot
CQkJCTkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsg
Ki8sCiAJCQkJMEZDRUZBQjYxODA1RDYxNjAwNDcyQ0U0IC8qIGxpYmxsdm1Gb3JKU0MuZHlsaWIg
Ki8sCiAJCQkJMTQxMjExMjAwQTQ4NzkzQzAwNDgwMjU1IC8qIG1pbmlkb20gKi8sCiAJCQkJMTRC
RDU5QkYwQTNFOEY5MDAwQkFGNTlDIC8qIHRlc3RhcGkgKi8sCkBAIC0zODQyLDcgKzM4NDIsNiBA
QAogCQkJCTg2MDRGNEYyMTQzQTZDNDQwMEIyOTVGNSAvKiBDaGFuZ2VMb2cgKi8sCiAJCQkJRjY5
MkE4NTQwMjU1NTk3RDAxRkY2MEY3IC8qIGNyZWF0ZV9oYXNoX3RhYmxlICovLAogCQkJCUE3MThG
ODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhfdGFibGVzICovLAotCQkJCUE3MURB
ODBEMTg4MEQ3MUYwMEQxRjI5OSAvKiBnZW5lcmF0ZS1qcy1idWlsdGlucyAqLywKIAkJCQk0NUUx
MkQ4ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLywKIAkJCQlGNjhFQkI4QzAyNTVENEM2
MDFGRjYwRjcgLyogY29uZmlnLmggKi8sCiAJCQkJRjVDMjkwRTYwMjg0Rjk4RTAxODYzNUNBIC8q
IEphdmFTY3JpcHRDb3JlUHJlZml4LmggKi8sCkBAIC0zODU0LDEyICszODUzLDkgQEAKIAkJCQlB
N0Q4MDE5RjE4ODBENjZFMDAyNkMzOUIgLyogYnVpbHRpbnMgKi8sCiAJCQkJOTY5QTA3OEYwRUQx
RDNBRTAwRjFGNjgxIC8qIGJ5dGVjb2RlICovLAogCQkJCTdFMzlEODFEMEVDMzhFRkEwMDNBRjEx
QSAvKiBieXRlY29tcGlsZXIgKi8sCi0JCQkJMUM5MDUxM0UwQkE5RTg4MzAwODFFOUQwIC8qIENv
bmZpZ3VyYXRpb25zICovLAogCQkJCTE0ODBEQjlBMEREQzIyMzEwMDNDRkRGMiAvKiBkZWJ1Z2dl
ciAqLywKLQkJCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICov
LAogCQkJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8sCiAJCQkJMEZGNDI3MkUx
NThFQkNDRTAwNENCOUZGIC8qIGRpc2Fzc2VtYmxlciAqLywKLQkJCQkwODY3RDY5QUZFODQwMjhG
QzAyQUFDMDcgLyogRnJhbWV3b3JrcyAqLywKIAkJCQkwRkVBMDlGQzE3MDUxMzdGMDBCQjcyMkMg
LyogZnRsICovLAogCQkJCTE0MkUzMTJBMTM0RkYwQTYwMEFGQURCNSAvKiBoZWFwICovLAogCQkJ
CUE1QkExNURGMTgyMzQwOTIwMEE4MkU2OSAvKiBpbnNwZWN0b3IgKi8sCkBAIC0zODY4LDE1ICsz
ODY0LDE5IEBACiAJCQkJMEY0NjgwOUMxNEJBN0Y0RDAwQkZFMjcyIC8qIGxsaW50ICovLAogCQkJ
CTBGQ0VGQUFEMTgwNUNBNDQwMDQ3MkNFNCAvKiBsbHZtICovLAogCQkJCTdFMzlEODM3MEVDM0Ez
ODgwMDNBRjExQSAvKiBwYXJzZXIgKi8sCi0JCQkJMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8q
IFByb2R1Y3RzICovLAogCQkJCTk1QUI4MzFBMERBNDJDNjkwMEJDODNGMyAvKiBwcm9maWxlciAq
LywKIAkJCQk5OUU0NUEwQzE4QTAxRTkzMDAyNkQ4OEYgLyogcmVwbGF5ICovLAotCQkJCTkzMkZD
M0MyMDgyNEJCNzAwMDVCM0M3NSAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJN0VGNkUwQkIwRUI3QTFF
QzAwNzlBRkFGIC8qIHJ1bnRpbWUgKi8sCiAJCQkJMTQxMjExMDAwQTQ4NzcyNjAwNDgwMjU1IC8q
IHRlc3RzICovLAogCQkJCTg2MDNDRUYwMTRDNzUzRUYwMEFFNTlFMyAvKiB0b29scyAqLywKIAkJ
CQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2FzbSAqLywKIAkJCQk4NkVBQzQ4QzBGOTNF
OEI5MDA4RUM5NDggLyogeWFyciAqLywKKwkJCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyog
RGVyaXZlZCBTb3VyY2VzICovLAorCQkJCTkzMkZDM0MyMDgyNEJCNzAwMDVCM0M3NSAvKiBSZXNv
dXJjZXMgKi8sCisJCQkJOTk1OUU5MjUxQkQxN0YxRTAwMUFBNDEzIC8qIFNjcmlwdHMgKi8sCisJ
CQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8sCisJCQkJMDM0NzY4
REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovLAorCQkJCTFDOTA1MTNFMEJBOUU4ODMw
MDgxRTlEMCAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCSk7CiAJCQluYW1lID0gSmF2YVNjcmlw
dENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTc0Nyw2ICs1NzQ3LDE5IEBA
CiAJCQlwYXRoID0gYnl0ZWNvZGU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQk5OTU5RTkyNTFCRDE3RjFFMDAxQUE0MTMgLyogU2NyaXB0cyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTk1OUU5MjgxQkQxN0ZBMDAwMUFBNDEzIC8q
IGdlbmVyYXRlLWpzLWJ1aWx0aW5zICovLAorCQkJCTk5NTlFOTI3MUJEMTdGQTAwMDFBQTQxMyAv
KiBjc3NtaW4ucHkgKi8sCisJCQkJOTk1OUU5MkYxQkQxODFGNjAwMUFBNDEzIC8qIGdlbmVyYXRl
LWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICovLAorCQkJCTk5NTlFOTMwMUJEMTgxRjYwMDFB
QTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLywK
KwkJCQk5OTU5RTkyOTFCRDE3RkEwMDAxQUE0MTMgLyoganNtaW4ucHkgKi8sCisJCQkJOTk1OUU5
MkExQkQxN0ZBMDAwMUFBNDEzIC8qIHh4ZC5wbCAqLywKKwkJCSk7CisJCQlwYXRoID0gU2NyaXB0
czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk5RTQ1QTBDMThBMDFFOTMw
MDI2RDg4RiAvKiByZXBsYXkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtNTc5NywxMiArNTgxMCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCUM0NzAzQ0MxMTkyODQ0QTQwMDEzRkJFQSAvKiBjb2RlZ2VuICovLAotCQkJ
CUE1ODQwRTI2MTg3Qzk4MDcwMDg0M0IxMCAvKiBjc3NtaW4ucHkgKi8sCi0JCQkJQTUzMjQzOTEx
ODU2OTZFNjAwMkVENjkyIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICov
LAogCQkJCUM0NzAzQ0JGMTkyODQ0OTYwMDEzRkJFQSAvKiBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJv
dG9jb2wtYmluZGluZ3MucHkgKi8sCi0JCQkJQTU4NDBFMjgxODdDQTVCODAwODQzQjEwIC8qIGlu
bGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICovLAotCQkJCUE1MTNF
NUM0MTg1RjkyREMwMDdFOTVBRCAvKiBqc21pbi5weSAqLywKLQkJCQlBNTEzRTVDNTE4NUY5MkYw
MDA3RTk1QUQgLyogeHhkLnBsICovLAogCQkJKTsKIAkJCXBhdGggPSBzY3JpcHRzOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTYwNzQsNiArNjA4Miw3IEBACiAJCQkJMEYwQjgzQjkx
NEJDRjk1RjAwODg1QjRGIC8qIENhbGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjNCN0UyQjE5QTExQjgwMDBEOUJDNTYgLyogQ2FsbFZhcmlhbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTQyMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhl
bHBlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMUMzRERBMUJCQ0UwOUUwMEU1MjNFNCAvKiBD
ZWxsU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkFBQUU1MEUxRjQyNjUwMEFEODdEOCAv
KiBDbGFzc0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDI2MUFBOTA5NTYwMEQzM0Iz
MyAvKiBDbG9uZWRBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzk3MEVEMUQz
QUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovLApAQCAtNjEyMCw3ICs2MTI5
LDcgQEAKIAkJCQlDNEY0QjZGNDFBMDVDOTQ0MDA1Q0FCNzYgLyogY3BwX2dlbmVyYXRvci5weSBp
biBIZWFkZXJzICovLAogCQkJCUM0RjRCNkYzMUEwNUM5NDQwMDVDQUI3NiAvKiBjcHBfZ2VuZXJh
dG9yX3RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovLAogCQkJCTVERTZFNUIzMEUxNzI4RUMwMDE4
MDQwNyAvKiBjcmVhdGVfaGFzaF90YWJsZSBpbiBIZWFkZXJzICovLAotCQkJCUE1ODQwRTI3MTg3
Qzk4MUUwMDg0M0IxMCAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyQjFC
RDE3RkE0MDAxQUE0MTMgLyogY3NzbWluLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJMkExMTEyNDYx
OTJGQ0U3OTAwNUVFMThEIC8qIEN1c3RvbUdldHRlclNldHRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY0MjZBNEIxNDYwQ0Q2RTAwMTMxRjhGIC8qIERhdGFGb3JtYXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMkI2NkRGMTdCNkI1QUIwMEE3QUUzRiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02MjA1LDEwICs2MjE0LDggQEAKIAkJCQlBNzhBOTc3NTE3OTczOEI4MDA5REY3NDQg
LyogREZHRmFpbGVkRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JGRjNDMDE3OTg2
ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTc4QTk3NzcxNzk3MzhCODAwOURGNzQ0IC8qIERGR0ZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJN0I4MzI5QkYxQkIyMUZFMzAwNjQ5QTZFIC8qIFdBU01GdW5jdGlvbkxMVk1JUkdlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkRDMTYxNTFDNUQ0RjAwQ0Q4OTEwIC8qIERG
R0ZpeHVwUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUQzMzk3MTdGRkM0RTYwMDczQzJC
QyAvKiBERkdGbHVzaGVkQXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzJCRDExMUJCMzRGMTkw
MDkzQTU3RiAvKiBIZWFwSGVscGVyUG9vbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRjgx
N0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJERDgxNTFBQjNEOEJFMDBCQkI4RTggLyogREZHRm9yQWxsS2lsbHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNjlDQzg5MTkzQUM2MEEwMDQ1NzU5RSAvKiBERkdGcm96ZW5WYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC02Mjc3LDcgKzYyODQsNiBAQAogCQkJCTBGQjE3NjYzMTk2QjhGOUUwMDkx
MDUyQSAvKiBERkdQdXJlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGM0ExQkZBMUE5RUNC
N0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODZFQzlERDExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1JlZ2lzdGVyQmFuay5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJREVBN0UyNDUxQkJDNjc3RjAwRDc4NDQwIC8qIEpTVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAv
KiBERkdTYWZlcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0E0MjQzMTdBMEJCRkQwMEE4
REI4MSAvKiBERkdTYWZlVG9FeGVjdXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQxMDE3RjE3
OURBRjgwMDAyRUI4QkEgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3Iu
aCBpbiBIZWFkZXJzICovLApAQCAtNjI5Niw3ICs2MzAyLDYgQEAKIAkJCQkwRjYzOTQ3ODE1RENF
MzRCMDA2QTU5N0MgLyogREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1MEFGM0MxOTNFOEIzOTAwNjc0RUU4IC8qIERGR1N0cnVjdHVyZUNsb2JiZXJTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3OTA4NTYxOUEyOTBCMjAwRjYzMTBDIC8qIERGR1N0
cnVjdHVyZVJlZ2lzdHJhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI0RkI3NTFC
Qzg0MzE0MDAyNUNBNUEgLyogRlRMTGF6eVNsb3dQYXRoQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyRkNDRkYxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzA5N0EyMTQ2QjI4Q0MwMENGMjQ0MiAvKiBERkdUaHVua3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRDhBMzI4MTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0lu
amVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTYzNzgsNiArNjM4Myw4IEBACiAJCQkJ
MEZEMTIwMzAxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRDEyMDM0MUE4Qzg1QkQwMDBGNTI4MCAvKiBGVExKU0NhbGxWYXJhcmdzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2Mjc3NERBQjFCOEQ0QjE5MDAwNkYwNUEgLyogRlRMSlNUYWlsQ2Fs
bC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCNEZCNzQxQkM4NDMxNDAwMjVDQTVBIC8qIEZUTExh
enlTbG93UGF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCNEZCNzUxQkM4NDMxNDAwMjVDQTVB
IC8qIEZUTExhenlTbG93UGF0aENhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEYyQjk2MTcy
RTA0QTMwMDdEQkRBNSAvKiBGVExMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNFRkFFMDE4
MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEw
QTEwMTcwNTEzREIwMEJCNzIyQyAvKiBGVExMb3dlckRGR1RvTExWTS5oIGluIEhlYWRlcnMgKi8s
CkBAIC02NDIwLDkgKzY0MjcsOSBAQAogCQkJCTJBQUJDREU3MThFRjI5NDIwMDAwMjA5NiAvKiBH
Q0xvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NEU4RUIwMThCRkZCQkIwMDU1NkQyOCAv
KiBHQ1NlZ21lbnRlZEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTRFOEVCMTE4QkZGQkJF
MDA1NTZEMjggLyogR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUE1MzI0Mzk0MTg1Njk3MDkwMDJFRDY5MiAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3It
anNvbi5weSBpbiBIZWFkZXJzICovLAorCQkJCTk5NTlFOTMxMUJEMTgyNzIwMDFBQTQxMyAvKiBn
ZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUM0
NzAzQ0MwMTkyODQ0OTYwMDEzRkJFQSAvKiBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkgaW4gSGVhZGVycyAqLywKLQkJCQkyREZCOEFGRTFCQjMyM0JEMDA5M0QyMzcgLyog
Z2VuZXJhdGUtanMtYnVpbHRpbnMgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyQzFCRDE3RkE0
MDAxQUE0MTMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVB
NzBFQzE5RjVCM0VBMDA5OEY1RUMgLyogZ2VuZXJhdGVfY3BwX2FsdGVybmF0ZV9iYWNrZW5kX2Rp
c3BhdGNoZXJfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFRjlCMTQxQTFENDNGNjAw
NzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVFRjlCMTUxQTFENDNGQTAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9i
YWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKQEAgLTY0
NTksNiArNjQ2Niw3IEBACiAJCQkJMTQyRTMxMzgxMzRGRjBBNjAwQUZBREI1IC8qIEhhbmRsZVN0
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc4Mjk3QjEzNzlFOEE4MDBBN0MyQTMgLyogSGFu
ZGxlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0QkE3QTk4MTNBQURGRjgwMDVCN0MyQyAv
KiBIZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMyQkQxMTFCQjM0RjE5MDA5M0E1N0YgLyog
SGVhcEhlbHBlclBvb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyREE3NzgzMThFMjU5OTkwMDY2
RkNCNiAvKiBIZWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkFEODkzMkIxN0UzODY4
RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUz
MzlFQzkxQkI0QjQ2MDAwNTRGMDA1IC8qIEhlYXBPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC02NDg3LDcgKzY0OTUsNyBAQAogCQkJCUE1MTNFNUNCMTg1Rjk2MjQwMDdFOTVBRCAvKiBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTIxMTg3QjdCODYw
MDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUx
M0U1QzcxODVGOTQ0NjAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBNTg0MEUyOTE4N0NBNUU2MDA4NDNCMTAgLyogaW5saW5lLWFuZC1taW5pZnkt
c3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkzMjFC
RDE4Mjc5MDAxQUE0MTMgLyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlw
dHMucHkgaW4gSGVhZGVycyAqLywKIAkJCQkxNDhBN0JGMDFCODI5NzVBMDAyRDkxNTcgLyogSW5s
aW5lQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1NjE3RjBCNzFDMDBBQkIy
MTcgLyogSW5saW5lQ2FsbEZyYW1lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUU0NUEyNzE4
QTFCMjU5MDAyNkQ4OEYgLyogSW5wdXRDdXJzb3IuaCBpbiBIZWFkZXJzICovLApAQCAtNjYwNSw3
ICs2NjEzLDYgQEAKIAkJCQk4NkUzQzYxNDE2N0JBQkQ3MDA2RDc2MEEgLyogSlNFeHBvcnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3QjRBQ0FGMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1h
Y3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUYxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
RmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJE
MzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NkYwMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Zsb2F0NjRBcnJheS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUYwRTE2RjVDRDAwQjM0NDYwIC8qIEpTRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MjAyOEJBMTc5NzYwM0QwMDk4MDI4QyAvKiBKU0Z1
bmN0aW9uSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjE0LDYgKzY2MjEsNyBAQAogCQkJ
CTBGMkI2NkYzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjQxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQjY2RjUxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyog
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMkI2NkY2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5N0UwN0FBMUI4RkNGQjkw
MDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0NDYwIC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTY2NDYsNyArNjY1NCw3IEBACiAJCQkJMkE0QkI3RjMxOEE0MTE3OTAwOEEwRkNE
IC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzQy
MTdDQkU4RUIwMEMzRTY0MyAvKiBKU01hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0REVGOTYx
ODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1
ODQwRTJCMTg3Q0E3NUIwMDg0M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovLAorCQkJCTk5
NTlFOTJEMUJEMTdGQTQwMDFBQTQxMyAvKiBqc21pbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUUz
RDIzOUM5MUI4MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzE4Q0JDMTFCOEFFRjUxMDBBMjkyOUQgLyogSlNNb2R1bGVOYW1lc3BhY2VP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOURBNEE3MUI3RThCN0MwMDg0RjMzQSAvKiBK
U01vZHVsZVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjYwLDcgKzY2NjgsNiBAQAogCQkJ
CTdDMTg0RTFCMTdCRURCRDMwMDdDQjYzQSAvKiBKU1Byb21pc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDMTg0RTIzMTdCRUUyNDAwMDdDQjYzQSAvKiBKU1Byb21pc2VDb25zdHJ1Y3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0MwMDhDREIxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURl
ZmVycmVkLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI0RkI3NDFCQzg0MzE0MDAyNUNBNUEgLyog
RlRMTGF6eVNsb3dQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUxRjE3QkVFMjJFMDA3
Q0I2M0EgLyogSlNQcm9taXNlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTA1QUJE
NjE5NjFERjI0MDAzNDE3NTAgLyogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC02Njg4LDYgKzY2OTUsNyBAQAogCQkJCTBGMkI2NkZC
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMkI2NkZEMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlQcm90b3R5
cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGRjE3QjZCNUFCMDBBN0FFM0YgLyogSlNU
eXBlZEFycmF5cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREVBN0UyNDUxQkJDNjc3RjAwRDc4NDQw
IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MDdE
MjlFMEU4NzFFNUUwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCNjcwMjE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQjY3MDMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDMyQXJyYXkuaCBpbiBIZWFk
ZXJzICovLApAQCAtNjk2Nyw3ICs2OTc1LDYgQEAKIAkJCQkxNDE0MkU1MTFCNzk2RUNFMDBGNEJG
NEIgLyogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2ludGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjk2M0IzODEzRkM2RkU5MDAwMkQ5QjIgLyogVmFsdWVQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjFDM0REQTFCQkNFMDlFMDBFNTIzRTQgLyogQ2VsbFN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjQyNkE0ODE0NjBDQkIzMDAxMzFGOEYgLyogVmFsdWVSZWNvdmVyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzlFRTBDMDAxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxl
RW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkM3MzUxMUFDOUY5OUYwMEJFMTY4
MiAvKiBWYXJpYWJsZVdyaXRlRmlyZURldGFpbC5oIGluIEhlYWRlcnMgKi8sCkBAIC02OTc5LDYg
KzY5ODYsNyBAQAogCQkJCTdCMDI0NzU1MUI4NjgyREQwMDU0MjQ0MCAvKiBXQVNNQ29uc3RhbnRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QkM1NDdEMzFCNjk1OUExMDA5NTlCNTggLyogV0FTTUZv
cm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0IyRTAxMEUxQjk3QUE2OTAwRUY1RDVDIC8qIFdB
U01GdW5jdGlvbkNvbXBpbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjgzMjlCRjFCQjIxRkUz
MDA2NDlBNkUgLyogV0FTTUZ1bmN0aW9uTExWTUlSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3QjAyNDc1NzFCODY4MkU0MDA1NDI0NDAgLyogV0FTTUZ1bmN0aW9uUGFyc2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QjAyNDc1OTFCODY4RUI3MDA1NDI0NDAgLyogV0FTTUZ1bmN0aW9u
U3ludGF4Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0IzOUY3NkUxQjYyREUzMjAwMzYw
RkI0IC8qIFdBU01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNzAwNiw3ICs3MDE0
LDcgQEAKIAkJCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRl
QmFycmllclN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFE
NjQ5RiAvKiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1ODQwRTJBMTg3Q0E3
NTkwMDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkyRTFCRDE3RkE0
MDAxQUE0MTMgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUxNTM5QjkxMkRDOTk0NTAw
RUY3QUM0IC8qIFlhcnIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg1MTJEQkEzMzcwMEE5
RkU3QiAvKiBZYXJySW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg3MTJE
QkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmggaW4gSGVhZGVycyAqLywKQEAgLTc3NTgsNiArNzc2
Niw3IEBACiAJCQkJMEZEMTIwMkYxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEMTIwMzMxQThDODVCRDAwMEY1MjgwIC8qIEZUTEpTQ2Fs
bFZhcmFyZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjI3NzREQUExQjhENEIxOTAwMDZGMDVB
IC8qIEZUTEpTVGFpbENhbGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZCNEZCNzMxQkM4NDMx
NDAwMjVDQTVBIC8qIEZUTExhenlTbG93UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhG
MkI5NTE3MkUwNEEwMDA3REJEQTUgLyogRlRMTGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkNFRkFERjE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFQTBBMEYxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9MTFZNLmNwcCBp
biBTb3VyY2VzICovLApAQCAtNzc5MSw2ICs3ODAwLDcgQEAKIAkJCQkxNDJFMzEzNTEzNEZGMEE2
MDBBRkFEQjUgLyogSGFuZGxlU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkUzMTM3MTM0
RkYwQTYwMEFGQURCNSAvKiBIYW5kbGVTdGFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEJB
N0E5NzEzQUFERkY4MDA1QjdDMkMgLyogSGVhcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjMy
QkQxMDFCQjM0RjE5MDA5M0E1N0YgLyogSGVhcEhlbHBlclBvb2wuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzI0RDMxRTIxNjFDRDY5NTAwMkFBNERCIC8qIEhlYXBTdGF0aXN0aWNzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUMyRTUyNkJEMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkU3QkE2MEYxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJp
Zmllci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTc5NDgsNiArNzk1OCw3IEBACiAJCQkJMEYyQjY2
RkExN0I2QjVBQjAwQTdBRTNGIC8qIEpTVHlwZWRBcnJheUNvbnN0cnVjdG9ycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjJCNjZGQzE3QjZCNUFCMDBBN0FFM0YgLyogSlNUeXBlZEFycmF5UHJv
dG90eXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZGRTE3QjZCNUFCMDBBN0FFM0Yg
LyogSlNUeXBlZEFycmF5cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlERUE3RTI0NDFCQkM2Nzcy
MDBENzg0NDAgLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NkUzQzYxQTE2N0JBQkVFMDA2RDc2MEEgLyogSlNWYWx1ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTE0QkQ1QTMyMEEzRTkxRjYwMEJBRjU5QyAvKiBKU1ZhbHVlUmVmLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg2RTNDNjFDMTY3QkFCRUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5l
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC04MDIxLDcgKzgwMzIsNiBAQAogCQkJCTBGOTgyMDYwMTZC
RkUzODEwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTU3NDJGNjUwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTVDRDQ1NzYwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJREVBN0UyNDQxQkJDNjc3MjAwRDc4NDQwIC8qIEpTVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTVBQjgzNTYwREE0M0MzMDAw
QkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjcyOUFEMTY2
QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRjcyOUFFMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTgwOTgsNyArODEwOCw2IEBACiAJCQkJMTQ0NjlERUIxMDdFQzdFNzAwNjUw
NDQ2IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUMwRUM2
MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDQ2OURFQzEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTBGQjRGQjczMUJDODQzMTQwMDI1Q0E1QSAvKiBGVExMYXp5U2xv
d1BhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAwNjUwNDQ2IC8q
IFN0cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzM1RjI0RDEyRTY3NjVC
MDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtODEzMCw3ICs4MTM5LDYgQEAKIAkJCQkwRkY0Mjc0MDE1OEVCRThCMDA0Q0I5RkYgLyog
dWRpczg2X2RlY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NDMxNThFQkU5MTAwNENC
OUZGIC8qIHVkaXM4Nl9pbnB1dC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NEQxNThFQkZF
NjAwNENCOUZGIC8qIHVkaXM4Nl9pdGFiX2hvbGRlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYz
MkJEMTAxQkIzNEYxOTAwOTNBNTdGIC8qIEhlYXBIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRjQyNzQ1MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfc3luLWF0dC5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZGNDI3NDYxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9zeW4taW50
ZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQ3MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlz
ODZfc3luLmMgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdpbi5j
bWFrZQppbmRleCA2YTdhZjBkYzY2ZWI3YTcxYmQzZjkxZTczNTQxY2M0MmM4MTAxYjY1Li4wOTcx
ZDQ0NGJmNzMzZTExOWQ1NWZhMjMwNjFjZTQyNWQ2ZTdkNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0yOSwxMSArMjksMTYgQEAgZmlsZShDT1BZCiApCiAK
IGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVh
ZGVycy9KYXZhU2NyaXB0Q29yZSkKKworZmlsZShHTE9CIF9KYXZhU2NyaXB0Q29yZV9TY3JpcHRz
ICIke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS8qIikKK2ZvcmVhY2ggKF9zY3JpcHQgJHtf
SmF2YVNjcmlwdENvcmVfU2NyaXB0c30pCisgICAgZmlsZShDT1BZICR7X3NjcmlwdH0gREVTVElO
QVRJT04gJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzKQorZW5kZm9yZWFjaCgpCisKIHNldChKYXZhU2NyaXB0Q29yZV9QT1NUX0JV
SUxEX0NPTU1BTkQgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlw
dENvcmUvcG9zdEJ1aWxkLmNtZCIpCiBmaWxlKFdSSVRFICIke0phdmFTY3JpcHRDb3JlX1BPU1Rf
QlVJTERfQ09NTUFORH0iICJAeGNvcHkgL3kgL2QgL2YgXCIke0RFUklWRURfU09VUkNFU19ESVJ9
L0phdmFTY3JpcHRDb3JlLyouaFwiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5n
SGVhZGVycy9KYXZhU2NyaXB0Q29yZVwiID5udWwgMj5udWxcbiIpCiBmaWxlKEFQUEVORCAiJHtK
YXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NPTU1BTkR9IiAiQHhjb3B5IC95IC9kIC9mIFwiJHtE
RVJJVkVEX1NPVVJDRVNfRElSfS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvKi5oXCIgXCIke0RF
UklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlXCIgPm51
bCAyPm51bFxuIikKLWZpbGUoQVBQRU5EICIke0phdmFTY3JpcHRDb3JlX1BPU1RfQlVJTERfQ09N
TUFORH0iICJAeGNvcHkgL3kgL2QgL2YgL3MgXCIke0RFUklWRURfU09VUkNFU19ESVJ9L0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzLyouKlwiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZVwiID5udWwgMj5udWxcbiIpCi1maWxl
KEFQUEVORCAiJHtKYXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NPTU1BTkR9IiAiQHhjb3B5IC95
IC9kIC9mIC9zIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0
ZS1qcy1idWlsdGluc1wiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVy
cy9KYXZhU2NyaXB0Q29yZVwiID5udWwgMj5udWxcbiIpCitmaWxlKEFQUEVORCAiJHtKYXZhU2Ny
aXB0Q29yZV9QT1NUX0JVSUxEX0NPTU1BTkR9IiAiQHhjb3B5IC95IC9kIC9mIFwiJHtKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUn0vKi4qXCIgXCIke0RFUklWRURfU09VUkNFU19ESVJ9L0Zvcndh
cmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL1NjcmlwdHNcIiA+bnVsIDI+bnVsXG4iKQogZm9y
ZWFjaCAoX2RpcmVjdG9yeSAke0phdmFTY3JpcHRDb3JlX0ZPUldBUkRJTkdfSEVBREVSU19ESVJF
Q1RPUklFU30pCiAgICAgZmlsZShBUFBFTkQgIiR7SmF2YVNjcmlwdENvcmVfUE9TVF9CVUlMRF9D
T01NQU5EfSIgIkB4Y29weSAveSAvZCAvZiBcIiR7SkFWQVNDUklQVENPUkVfRElSfS8ke19kaXJl
Y3Rvcnl9LyouaFwiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9K
YXZhU2NyaXB0Q29yZVwiID5udWwgMj5udWxcbiIpCiBlbmRmb3JlYWNoICgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9jc3NtaW4ucHkgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy9jc3NtaW4ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTA2NDBlYjI4NGJhZGQ0ZjVj
ODJlNzFhM2ZjYWM2ZDhhNzFlMzAyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL2Nzc21pbi5weQpAQCAtMCwwICsxLDQ0IEBACisjIS91c3IvYmluL3B5
dGhvbgorCisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgcmUK
KworZGVmIGNzc21pbmlmeShjc3MpOgorICAgIHJ1bGVzID0gKAorICAgICAgICAociJcL1wqLio/
XCpcLyIsICIiKSwgICAgICAgICAgIyBkZWxldGUgY29tbWVudHMKKyAgICAgICAgKHIiXG4iLCAi
IiksICAgICAgICAgICAgICAgICAgICMgZGVsZXRlIG5ldyBsaW5lcworICAgICAgICAociJccysi
LCAiICIpLCAgICAgICAgICAgICAgICAgIyBjaGFuZ2UgbXVsdGlwbGUgc3BhY2VzIHRvIG9uZSBz
cGFjZQorICAgICAgICAociJccz8oWzs6e30sKz5dKVxzPyIsIHIiXDEiKSwgIyBkZWxldGUgc3Bh
Y2Ugd2hlcmUgaXQgaXMgbm90IG5lZWRlZAorICAgICAgICAociI7fSIsICJ9IikgICAgICAgICAg
ICAgICAgICAgIyBjaGFuZ2UgJzt9JyB0byAnfScgYmVjYXVzZSB0aGUgc2VtaWNvbG9uIGlzIG5v
dCBuZWVkZWQKKyAgICApCisKKyAgICBjc3MgPSBjc3MucmVwbGFjZSgiXHJcbiIsICJcbiIpCisg
ICAgZm9yIHJ1bGUgaW4gcnVsZXM6CisgICAgICAgIGNzcyA9IHJlLmNvbXBpbGUocnVsZVswXSwg
cmUuTVVMVElMSU5FIHwgcmUuVU5JQ09ERSB8IHJlLkRPVEFMTCkuc3ViKHJ1bGVbMV0sIGNzcykK
KyAgICByZXR1cm4gY3NzCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgaW1wb3J0
IHN5cworICAgIHN5cy5zdGRvdXQud3JpdGUoY3NzbWluaWZ5KHN5cy5zdGRpbi5yZWFkKCkpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtY29tYmlu
ZWQtaW5zcGVjdG9yLWpzb24ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9nZW5l
cmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzY2MDMxOGRkY2Uz
YmE3OGNiYjA2OTZhMjE3NTgxOTYwZjkxMDEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkK
QEAgLTAsMCArMSw2OSBAQAorIyEvdXNyL2Jpbi9weXRob24KKworIyBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGdsb2IKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MK
K2ltcG9ydCBzeXMKKworaWYgbGVuKHN5cy5hcmd2KSA8IDI6CisgICAgcHJpbnQoInVzYWdlOiAl
cyBbanNvbiBmaWxlcyBvciBkaXJlY3Rvcnkgb2YganNvbiBmaWxlcyAuLi5dIiAlIG9zLnBhdGgu
YmFzZW5hbWUoc3lzLmFyZ3ZbMF0pKQorICAgIHN5cy5leGl0KDEpCisKK2ZpbGVzID0gW10KK2Zv
ciBhcmcgaW4gc3lzLmFyZ3ZbMTpdOgorICAgIGlmIG5vdCBvcy5hY2Nlc3MoYXJnLCBvcy5GX09L
KToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJGaWxlIFwiJXNcIiBub3QgZm91bmQiICUgYXJn
KQorICAgIGVsaWYgb3MucGF0aC5pc2RpcihhcmcpOgorICAgICAgICBmaWxlcy5leHRlbmQoZ2xv
Yi5nbG9iKG9zLnBhdGguam9pbihhcmcsICIqLmpzb24iKSkpCisgICAgZWxzZToKKyAgICAgICAg
ZmlsZXMuYXBwZW5kKGFyZykKK2ZpbGVzLnNvcnQoKQorCisjIFRvIGtlZXAgYXMgY2xvc2UgdG8g
dGhlIG9yaWdpbmFsIEpTT04gZm9ybWF0dGluZyBhcyBwb3NzaWJsZSwganVzdAorIyBkdW1wIGVh
Y2ggSlNPTiBpbnB1dCBmaWxlIHVubW9kaWZpZWQgaW50byBhbiBhcnJheSBvZiAiZG9tYWlucyIu
CisjIFZhbGlkYXRlIGVhY2ggZmlsZSBpcyB2YWxpZCBKU09OIGFuZCB0aGF0IHRoZXJlIGlzIGEg
ImRvbWFpbiIga2V5LgorCitmaXJzdCA9IFRydWUKK3ByaW50KCJ7XCJkb21haW5zXCI6WyIpCitm
b3IgZmlsZSBpbiBmaWxlczoKKyAgICBpZiBmaXJzdDoKKyAgICAgICAgZmlyc3QgPSBGYWxzZQor
ICAgIGVsc2U6CisgICAgICAgIHByaW50KCIsIikKKworICAgIHN0cmluZyA9IG9wZW4oZmlsZSku
cmVhZCgpCisKKyAgICB0cnk6CisgICAgICAgIGRpY3Rpb25hcnkgPSBqc29uLmxvYWRzKHN0cmlu
ZykKKyAgICAgICAgaWYgbm90ICJkb21haW4iIGluIGRpY3Rpb25hcnk6CisgICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oIkZpbGUgXCIlc1wiIGRvZXMgbm90IGNvbnRhaW5zIGEgXCJkb21haW5c
IiBrZXkuIiAlIGZpbGUpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoIkZpbGUgXCIlc1wiIGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgSlNPTjpcbiIgJSBm
aWxlKQorICAgICAgICByYWlzZQorCisgICAgcHJpbnQoc3RyaW5nLnJzdHJpcCgpKQorcHJpbnQo
Il19IikKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJh
dGUtanMtYnVpbHRpbnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9nZW5lcmF0ZS1q
cy1idWlsdGlucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmY0MTg3M2RhMmI2NWE3NzExNGNmNWQ0MWU4N2E0YzBk
MzA2MzdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
Z2VuZXJhdGUtanMtYnVpbHRpbnMKQEAgLTAsMCArMSwzNDMgQEAKKyMhL3Vzci9iaW4vcHl0aG9u
CisjIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBmaWxlY21wCitpbXBvcnQg
Zm5tYXRjaAoraW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzeXMK
K2ltcG9ydCBkYXRldGltZQoraW1wb3J0IGpzb24KKworcGFyc2VyID0gYXJncGFyc2UuQXJndW1l
bnRQYXJzZXIoKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnaW5wdXRfZmlsZScsIG5hcmdzPScqJywg
aGVscD0nSW5wdXQgSlMgZmlsZXMgd2hpY2ggYnVpbHRpbnMgZ2VuZXJhdGVkIGZyb20nKQorcGFy
c2VyLmFkZF9hcmd1bWVudCgnLS1pbnB1dC1kaXJlY3RvcnknLCBoZWxwPSdBbGwgSlMgZmlsZXMg
d2lsbCBiZSB1c2VkIGFzIGlucHV0IGZyb20gdGhpcyBkaXJlY3RvcnkuJykKK3BhcnNlci5hZGRf
YXJndW1lbnQoJy0tb3V0cHV0JywgaGVscD0ncGF0aCB0byBvdXRwdXQgY3BwIG9yIGggZmlsZScp
CitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXByZWZpeCcsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J3By
ZWZpeCB1c2VkIGZvciBwdWJsaWMgbWFjcm9zJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFt
ZXNwYWNlJywgZGVmYXVsdD0nSlNDJywgaGVscD0nQysrIG5hbWVzcGFjZScpCithcmdzID0gcGFy
c2VyLnBhcnNlX2FyZ3MoKQorCitjb3B5cmlnaHRUZXh0ID0gIiIiICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi9cbgorIiIiCisKK2dlbmVyYXRvclN0cmluZyA9ICIvKiBH
ZW5lcmF0ZWQgYnkgJXMgZG8gbm90IGhhbmQgZWRpdC4gKi9cbiIgJSBvcy5wYXRoLmJhc2VuYW1l
KF9fZmlsZV9fKQorCitmdW5jdGlvbkhlYWRSZWdFeHAgPSByZS5jb21waWxlKHIiKD86ZnVuY3Rp
b258Y29uc3RydWN0b3IpXHMrXHcrXHMqXCguKj9cKSIsIHJlLk1VTFRJTElORSB8IHJlLlMpCitm
dW5jdGlvbk5hbWVSZWdFeHAgPSByZS5jb21waWxlKHIiKD86ZnVuY3Rpb258Y29uc3RydWN0b3Ip
XHMrKFx3KylccypcKCIsIHJlLk1VTFRJTElORSB8IHJlLlMpCitmdW5jdGlvbklzQ29uc3RydWN0
b3JSZWdFeHAgPSByZS5jb21waWxlKHIiXmNvbnN0cnVjdG9yIiwgcmUuTVVMVElMSU5FIHwgcmUu
UykKK2Z1bmN0aW9uUGFyYW1ldGVyRmluZGVyID0gcmUuY29tcGlsZShyIl4oPzpmdW5jdGlvbnxj
b25zdHJ1Y3RvcilccysoPzpcdyspXHMqXCgoKD86XHMqXHcrKT9ccyooPzpccyosXHMqXHcrKSop
P1xzKlwpIiwgcmUuTVVMVElMSU5FIHwgcmUuUykKKworbXVsdGlsaW5lQ29tbWVudFJlZ0V4cCA9
IHJlLmNvbXBpbGUociJcL1wqLio/XCpcLyIsIHJlLk1VTFRJTElORSB8IHJlLlMpCitzaW5nbGVM
aW5lQ29tbWVudFJlZ0V4cCA9IHJlLmNvbXBpbGUociJcL1wvLio/XG4iLCByZS5NVUxUSUxJTkUg
fCByZS5TKQorCitkZWYgZ2V0Q29weXJpZ2h0KHNvdXJjZSk6CisgICAgY29weXJpZ2h0QmxvY2sg
PSBtdWx0aWxpbmVDb21tZW50UmVnRXhwLmZpbmRhbGwoc291cmNlKVswXQorICAgIGNvcHlyaWdo
dEJsb2NrID0gY29weXJpZ2h0QmxvY2tbOmNvcHlyaWdodEJsb2NrLmluZGV4KCJSZWRpc3RyaWJ1
dGlvbiIpXQorICAgIGNvcHlSaWdodExpbmVzID0gW10KKworICAgIGZvciBsaW5lIGluIGNvcHly
aWdodEJsb2NrLnNwbGl0KCJcbiIpOgorICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCIvKiIs
ICIiKQorICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCIqLyIsICIiKQorICAgICAgICBsaW5l
ID0gbGluZS5yZXBsYWNlKCIqIiwgIiIpCisgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIkNv
cHlyaWdodCIsICIiKQorICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCJjb3B5cmlnaHQiLCAi
IikKKyAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiKEMpIiwgIiIpCisgICAgICAgIGxpbmUg
PSBsaW5lLnJlcGxhY2UoIihjKSIsICIiKQorICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCisg
ICAgICAgIGlmIGxlbihsaW5lKSA9PSAwOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAg
ICBjb3B5UmlnaHRMaW5lcy5hcHBlbmQobGluZSkKKyAgICAKKyAgICByZXR1cm4gbGlzdChzZXQo
Y29weVJpZ2h0TGluZXMpKQorCitjbGFzcyBGdW5jdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBuYW1lLCBzb3VyY2UsIGlzQ29uc3RydWN0b3IsIHBhcmFtZXRlcnMpOgorICAg
ICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYuc291cmNlID0gc291cmNlCisgICAg
ICAgIHNlbGYuaXNDb25zdHJ1Y3RvciA9IGlzQ29uc3RydWN0b3IKKyAgICAgICAgc2VsZi5wYXJh
bWV0ZXJzID0gcGFyYW1ldGVycworCisgICAgZGVmIG1hbmdsZU5hbWUoc2VsZiwgb2JqZWN0KToK
KyAgICAgICAgcU5hbWUgPSBvYmplY3QgKyAiLiIgKyBzZWxmLm5hbWUKKyAgICAgICAgbWFuZ2xl
ZE5hbWUgPSAiIgorICAgICAgICBpID0gMAorICAgICAgICB3aGlsZSBpIDwgbGVuKHFOYW1lKToK
KyAgICAgICAgICAgIGlmIHFOYW1lW2ldID09ICcuJzoKKyAgICAgICAgICAgICAgICBtYW5nbGVk
TmFtZSA9IG1hbmdsZWROYW1lICsgcU5hbWVbaSArIDFdLnVwcGVyKCkKKyAgICAgICAgICAgICAg
ICBpID0gaSArIDEKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWFuZ2xlZE5h
bWUgPSBtYW5nbGVkTmFtZSArIHFOYW1lW2ldCisgICAgICAgICAgICBpID0gaSArIDEKKyAgICAg
ICAgaWYgc2VsZi5pc0NvbnN0cnVjdG9yOgorICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5n
bGVkTmFtZSArICJDb25zdHJ1Y3RvciIKKyAgICAgICAgcmV0dXJuIG1hbmdsZWROYW1lCisKK2Rl
ZiBnZXRGdW5jdGlvbnMoc291cmNlKToKKworICAgIHNvdXJjZSA9IG11bHRpbGluZUNvbW1lbnRS
ZWdFeHAuc3ViKCIvKiovIiwgc2luZ2xlTGluZUNvbW1lbnRSZWdFeHAuc3ViKCIvL1xuIiwgc291
cmNlKSkKKworICAgIG1hdGNoZXMgPSBbIGYgZm9yIGYgaW4gZnVuY3Rpb25IZWFkUmVnRXhwLmZp
bmRpdGVyKHNvdXJjZSldCisgICAgZnVuY3Rpb25Cb3VuZHMgPSBbXQorICAgIHN0YXJ0ID0gMAor
ICAgIGVuZCA9IDAKKyAgICBmb3IgbWF0Y2ggaW4gbWF0Y2hlczoKKyAgICAgICAgc3RhcnQgPSBt
YXRjaC5zdGFydCgpCisgICAgICAgIGlmIHN0YXJ0IDwgZW5kOgorICAgICAgICAgICAgY29udGlu
dWUKKyAgICAgICAgZW5kID0gbWF0Y2guZW5kKCkKKyAgICAgICAgd2hpbGUgc291cmNlW2VuZF0g
IT0gJ3snOgorICAgICAgICAgICAgZW5kID0gZW5kICsgMQorICAgICAgICBkZXB0aCA9IDEKKyAg
ICAgICAgZW5kID0gZW5kICsgMQorICAgICAgICB3aGlsZSBkZXB0aCA+IDA6CisgICAgICAgICAg
ICBpZiBzb3VyY2VbZW5kXSA9PSAneyc6CisgICAgICAgICAgICAgICAgZGVwdGggPSBkZXB0aCAr
IDEKKyAgICAgICAgICAgIGVsaWYgc291cmNlW2VuZF0gPT0gJ30nOgorICAgICAgICAgICAgICAg
IGRlcHRoID0gZGVwdGggLSAxCisgICAgICAgICAgICBlbmQgPSBlbmQgKyAxCisgICAgICAgIGZ1
bmN0aW9uQm91bmRzLmFwcGVuZCgoc3RhcnQsIGVuZCkpCisKKyAgICBmdW5jdGlvbnMgPSBbc291
cmNlW3N0YXJ0OmVuZF0uc3RyaXAoKSBmb3IgKHN0YXJ0LCBlbmQpIGluIGZ1bmN0aW9uQm91bmRz
XQorICAgIHJlc3VsdCA9IFtdCisgICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKKyAgICAg
ICAgZnVuY3Rpb24gPSBtdWx0aWxpbmVDb21tZW50UmVnRXhwLnN1YigiIiwgZnVuY3Rpb24pCisg
ICAgICAgIGZ1bmN0aW9uTmFtZSA9IGZ1bmN0aW9uTmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9u
KVswXQorICAgICAgICBmdW5jdGlvbklzQ29uc3RydWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0
b3JSZWdFeHAubWF0Y2goZnVuY3Rpb24pICE9IE5vbmUKKyAgICAgICAgZnVuY3Rpb25QYXJhbWV0
ZXJzID0gZnVuY3Rpb25QYXJhbWV0ZXJGaW5kZXIuZmluZGFsbChmdW5jdGlvbilbMF0uc3BsaXQo
JywnKQorICAgICAgICBpZiBsZW4oZnVuY3Rpb25QYXJhbWV0ZXJzWzBdKSA9PSAwOgorICAgICAg
ICAgICAgZnVuY3Rpb25QYXJhbWV0ZXJzID0gW10KKworICAgICAgICByZXN1bHQuYXBwZW5kKEZ1
bmN0aW9uKGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb24sIGZ1bmN0aW9uSXNDb25zdHJ1Y3RvciwgZnVu
Y3Rpb25QYXJhbWV0ZXJzKSkKKyAgICByZXR1cm4gcmVzdWx0CisKK2RlZiB3cml0ZUluY2x1ZGVE
aXJlY3RpdmVzKHdyaXRlciwgaGVhZGVyTmFtZXMpOgorICAgIGZvciBoZWFkZXJOYW1lIGluIGhl
YWRlck5hbWVzOgorICAgICAgICB3cml0ZXIud3JpdGUoIiNpbmNsdWRlICIgKyBoZWFkZXJOYW1l
ICsgIlxuIikKKworZGVmIGdlbmVyYXRlQ29kZShzb3VyY2UpOgorICAgIGlucHV0RmlsZSA9IG9w
ZW4oc291cmNlLCAiciIpCisgICAgYmFzZU5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHNvdXJjZSku
cmVwbGFjZSgiLmpzIiwgIiIpCisgICAgCisgICAgc291cmNlID0gIiIKKyAgICBmb3IgbGluZSBp
biBpbnB1dEZpbGU6CisgICAgICAgIHNvdXJjZSA9IHNvdXJjZSArIGxpbmUKKyAgICAKKyAgICBp
ZiBzeXMucGxhdGZvcm0gPT0gImN5Z3dpbiI6CisgICAgICAgIHNvdXJjZSA9IHNvdXJjZS5yZXBs
YWNlKCJcclxuIiwgIlxuIikKKyAgICByZXR1cm4gKGJhc2VOYW1lLCBnZXRGdW5jdGlvbnMoc291
cmNlKSwgZ2V0Q29weXJpZ2h0KHNvdXJjZSkpCisKK2J1aWx0aW5zID0gW10KK2NvcHlyaWdodHMg
PSBbXQorKG91dHB1dF9iYXNlLCBfKSA9IG9zLnBhdGguc3BsaXRleHQoYXJncy5vdXRwdXQpCisK
K2lmIGFyZ3MuaW5wdXRfZGlyZWN0b3J5OgorICAgIGZvciBmaWxlIGluIG9zLmxpc3RkaXIoYXJn
cy5pbnB1dF9kaXJlY3RvcnkpOgorICAgICAgICBhcmdzLmlucHV0X2ZpbGUuYXBwZW5kKG9zLnBh
dGguam9pbihhcmdzLmlucHV0X2RpcmVjdG9yeSwgZmlsZSkpCisKK2ZvciBmaWxlIGluIGFyZ3Mu
aW5wdXRfZmlsZToKKyAgICBpZiBmbm1hdGNoLmZubWF0Y2goZmlsZSwgJyouanMnKToKKyAgICAg
ICAgKGJhc2VOYW1lLCBmdW5jdGlvbnMsIG9iamVjdENvcHlyaWdodHMpID0gZ2VuZXJhdGVDb2Rl
KGZpbGUpCisgICAgICAgIGNvcHlyaWdodHMuZXh0ZW5kKG9iamVjdENvcHlyaWdodHMpCisgICAg
ICAgIGJ1aWx0aW5zLmFwcGVuZCgoYmFzZU5hbWUsIGZ1bmN0aW9ucykpCituYW1lc3BhY2UgPSBh
cmdzLm5hbWVzcGFjZQorbWFjcm9QcmVmaXggPSBhcmdzLnByZWZpeAorc2NvcGVOYW1lID0gb3Mu
cGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKGFyZ3Mub3V0cHV0KSlbMF0KK2luY2x1ZGVH
dWFyZCA9IHNjb3BlTmFtZSArICJfSCIKK2hlYWRlck5hbWUgPSBzY29wZU5hbWUgKyAiLmgiCisK
K2hlYWRlckluY2x1ZGVzID0gWyJcIkJ1aWx0aW5VdGlscy5oXCIiXSBpZiBuYW1lc3BhY2UgPT0g
IkpTQyIgZWxzZSBbIjxidWlsdGlucy9CdWlsdGluVXRpbHMuaD4iXQorY29udGVudEluY2x1ZGVz
ID0gWyJcIkJ1aWx0aW5FeGVjdXRhYmxlcy5oXCIiLCAiXCJFeGVjdXRhYmxlLmhcIiIsICJcIkpT
Q2VsbElubGluZXMuaFwiIiwgIlwiVk0uaFwiIl0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2Ug
WyI8cnVudGltZS9FeGVjdXRhYmxlLmg+IiwgIjxydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaD4i
LCAiPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4iLCAiPHJ1bnRpbWUvSlNDZWxsSW5saW5l
cy5oPiIsICI8cnVudGltZS9WTS5oPiIsICJcIldlYkNvcmVKU0NsaWVudERhdGEuaFwiIl0KKwor
Y29weXJpZ2h0cyA9IGxpc3Qoc2V0KGNvcHlyaWdodHMpKQorCitjb3B5cmlnaHRCb2R5ID0gIiIK
K2ZvciBjb3B5cmlnaHQgaW4gY29weXJpZ2h0czoKKyAgICBjb3B5cmlnaHRCb2R5ID0gY29weXJp
Z2h0Qm9keSArIiAqIENvcHlyaWdodCAoQykgIiArIGNvcHlyaWdodCArICJcbiIKKworYnVpbHRp
bnNIZWFkZXIgPSBvcGVuKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsICJ3IikKK2J1aWx0aW5zSW1w
bGVtZW50YXRpb24gPSBvcGVuKG91dHB1dF9iYXNlICsgIi5jcHAudG1wIiwgInciKQorY29weXJp
Z2h0VGV4dCA9ICIvKlxuIiArIGNvcHlyaWdodEJvZHkgKyBjb3B5cmlnaHRUZXh0CitidWlsdGlu
c0hlYWRlci53cml0ZSgiIiIlcworJXMKKworI2lmbmRlZiAlcworI2RlZmluZSAlcworCisiIiIg
JSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0LCBpbmNsdWRlR3VhcmQsIGluY2x1ZGVH
dWFyZCkpCisKK3dyaXRlSW5jbHVkZURpcmVjdGl2ZXMoYnVpbHRpbnNIZWFkZXIsIGhlYWRlcklu
Y2x1ZGVzKQorCitidWlsdGluc0hlYWRlci53cml0ZSgiIiIKK25hbWVzcGFjZSBKU0MgeworICAg
IGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK30KKworbmFtZXNwYWNlICVzIHsKKworIiIiICUg
bmFtZXNwYWNlKQorCitjb2RlUmVmZXJlbmNlcyA9IFtdCisKK2ZvciAob2JqZWN0TmFtZSwgZnVu
Y3Rpb25zKSBpbiBidWlsdGluczoKKyAgICBwcmludCgiR2VuZXJhdGluZyBiaW5kaW5ncyBmb3Ig
dGhlICVzIGJ1aWx0aW4uIiAlIG9iamVjdE5hbWUpCisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUo
Ii8qICVzIGZ1bmN0aW9ucyAqL1xuIiAlIG9iamVjdE5hbWUpCisgICAgZm9yIGZ1bmN0aW9uIGlu
IGZ1bmN0aW9uczoKKyAgICAgICAgbmFtZSA9IGZ1bmN0aW9uLm5hbWUKKyAgICAgICAgbWFuZ2xl
ZE5hbWUgPSBmdW5jdGlvbi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpCisgICAgICAgIG1hbmdsZWRO
YW1lID0gbWFuZ2xlZE5hbWVbMF0ubG93ZXIoKSArIG1hbmdsZWROYW1lWzE6XSArICJDb2RlIgor
ICAgICAgICBjb2RlUmVmZXJlbmNlcy5hcHBlbmQoKG1hbmdsZWROYW1lLCBmdW5jdGlvbikpCisg
ICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgY2hhciogc18lcztcbiIg
JSBtYW5nbGVkTmFtZSkKKyAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25z
dCBpbnQgc18lc0xlbmd0aDtcbiIgJSBtYW5nbGVkTmFtZSkKKyAgICAgICAgYnVpbHRpbnNIZWFk
ZXIud3JpdGUoImV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0cnVj
dEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUpCisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxu
IikKKyAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIXyVzX0JVSUxU
SU4obWFjcm8pIFxcXG4iICUgKG1hY3JvUHJlZml4LCBvYmplY3ROYW1lLnJlcGxhY2UoIi4iLCAi
XyIpLnVwcGVyKCkpKQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAgIG1h
bmdsZWROYW1lID0gZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKQorICAgICAgICBidWls
dGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzLCAlcywgJWQpIFxcXG4iICUgKGZ1bmN0aW9u
Lm5hbWUsIG1hbmdsZWROYW1lLCBsZW4oZnVuY3Rpb24ucGFyYW1ldGVycykpKQorICAgIGJ1aWx0
aW5zSGVhZGVyLndyaXRlKCJcbiIpCisgICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKKyAg
ICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfQlVJTFRJTl8lcyAxXG4iICUg
KG1hY3JvUHJlZml4LCBmdW5jdGlvbi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpKQor
ICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcblxuIikKK25hbWVzID0gW10KK2J1aWx0aW5zSGVh
ZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVBQ0hfQlVJTFRJTihtYWNybylcXFxuIiAlIG1hY3Jv
UHJlZml4KQorZm9yIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6
CisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcywgJXMsIHNfJXNMZW5ndGgp
IFxcXG4iICUgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uLm5hbWUsIGNvZGVSZWZlcmVuY2UpKQor
ICAgIG5hbWVzLmFwcGVuZChmdW5jdGlvbi5uYW1lKQorCitidWlsdGluc0hlYWRlci53cml0ZSgi
XG5cbiIpCitidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU5f
RlVOQ1RJT05fTkFNRShtYWNybykgXFxcbiIgJSBtYWNyb1ByZWZpeCkKK2ZvciBuYW1lIGluIHNv
cnRlZChzZXQobmFtZXMpKToKKyAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVz
KSBcXFxuIiAlIG5hbWUpCitidWlsdGluc0hlYWRlci53cml0ZSgiIiIKKworI2RlZmluZSBERUNM
QVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291
bnQpIFxcCisgICAgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3Io
SlNDOjpWTSYpOworCislc19GT1JFQUNIX0JVSUxUSU4oREVDTEFSRV9CVUlMVElOX0dFTkVSQVRP
UikKKyN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCisKKyNkZWZpbmUgJXNfQlVJTFRJ
Tl9FWElTVFMobmFtZSkgZGVmaW5lZCAlc19CVUlMVElOXyAjIyBuYW1lCisKK30KKworI2VuZGlm
IC8vICVzCisKKyIiIiAlIChtYWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBp
bmNsdWRlR3VhcmQpKQorCitidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIiVzCislcwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICIlcyIKKworIiIiICAlIChnZW5lcmF0
b3JTdHJpbmcsIGNvcHlyaWdodFRleHQsIGhlYWRlck5hbWUpKQorCit3cml0ZUluY2x1ZGVEaXJl
Y3RpdmVzKGJ1aWx0aW5zSW1wbGVtZW50YXRpb24sIGNvbnRlbnRJbmNsdWRlcykKKworYnVpbHRp
bnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKK25hbWVzcGFjZSAlcyB7CisKKyIiIiAgJSAobmFt
ZXNwYWNlKSkKKworCisKK2ZvciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZl
cmVuY2VzOgorICAgIHNvdXJjZSA9IGZ1bmN0aW9uLnNvdXJjZQorICAgIHNvdXJjZSA9ICIoZnVu
Y3Rpb24gIiArIHNvdXJjZVtzb3VyY2UuaW5kZXgoIigiKTpdICsgIikiCisgICAgbGluZXMgPSBq
c29uLmR1bXBzKHNvdXJjZSlbMTotMV0uc3BsaXQoIlxcbiIpCisgICAgc291cmNlTGVuZ3RoID0g
bGVuKHNvdXJjZSkKKyAgICBzb3VyY2UgPSAiIgorICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAg
ICAgICBzb3VyY2UgPSBzb3VyY2UgKyAoIiAgICBcIiVzXFxuXCIgXFxcbiIgJSBsaW5lKQorICAg
IGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IGNoYXIqIHNfJXMgPVxuJXM7XG5c
biIgJSAoY29kZVJlZmVyZW5jZSwgc291cmNlKSkKKyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9u
LndyaXRlKCJjb25zdCBpbnQgc18lc0xlbmd0aCA9ICVkO1xuXG4iICUgKGNvZGVSZWZlcmVuY2Us
IHNvdXJjZUxlbmd0aCArIDEpKSAjICsgMSBmb3IgXG4KKyAgICBjb25zdHJ1Y3RBYmlsaXR5ID0g
IkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0IgorICAgIGlmIGZ1bmN0aW9u
LmlzQ29uc3RydWN0b3I6CisgICAgICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QiCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0
ZSgiY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5ID0gJXM7
XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29uc3RydWN0QWJpbGl0eSkpICMgKyAxIGZvciBcbgor
CitidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIgorI2RlZmluZSBERUZJTkVfQlVJTFRJ
Tl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKK0pT
Qzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBc
XAorIiIiKTsKKworaWYgKG5hbWVzcGFjZSA9PSAiSlNDIik6CisgICAgYnVpbHRpbnNJbXBsZW1l
bnRhdGlvbi53cml0ZSgiIiJ7XFwKKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCkt
PmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygp
LT5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAorIiIiKQorZWxzZToKKyAgICBidWlsdGluTmFtZSA9
IHNjb3BlTmFtZVswXS5sb3dlcigpICsgc2NvcGVOYW1lWzE6XQorICAgIGJ1aWx0aW5zSW1wbGVt
ZW50YXRpb24ud3JpdGUoIiIie1xcCisgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBz
dGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcXAorICAgIHJldHVy
biBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuJXMoKS5jb2RlTmFtZSMjRXhlY3V0YWJs
ZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuJXMoKS5jb2RlTmFt
ZSMjU291cmNlKCkpOyBcXAorIiIiJSAoYnVpbHRpbk5hbWUsIGJ1aWx0aW5OYW1lKSkKKworYnVp
bHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ9Cislc19GT1JFQUNIX0JVSUxUSU4oREVGSU5F
X0JVSUxUSU5fR0VORVJBVE9SKQorI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgorfQor
CisiIiIlIChtYWNyb1ByZWZpeCkpCisKK2J1aWx0aW5zSGVhZGVyLmNsb3NlKCkKK2J1aWx0aW5z
SW1wbGVtZW50YXRpb24uY2xvc2UoKQorCitpZiAobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9i
YXNlICsgIi5oIikpIG9yIChub3QgZmlsZWNtcC5jbXAob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwg
b3V0cHV0X2Jhc2UgKyAiLmgiLCBzaGFsbG93PUZhbHNlKSk6CisgICAgaWYgKG9zLnBhdGguZXhp
c3RzKG91dHB1dF9iYXNlICsgIi5oIikpOgorICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2Ug
KyAiLmgiKQorICAgIG9zLnJlbmFtZShvdXRwdXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFz
ZSArICIuaCIpCitlbHNlOgorICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuaC50bXAiKQor
CitpZiAobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5jcHAiKSkgb3IgKG5vdCBm
aWxlY21wLmNtcChvdXRwdXRfYmFzZSArICIuY3BwLnRtcCIsIG91dHB1dF9iYXNlICsgIi5jcHAi
LCBzaGFsbG93PUZhbHNlKSk6CisgICAgaWYgKG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsg
Ii5jcHAiKSk6CisgICAgICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuY3BwIikKKyAgICBv
cy5yZW5hbWUob3V0cHV0X2Jhc2UgKyAiLmNwcC50bXAiLCBvdXRwdXRfYmFzZSArICIuY3BwIikK
K2Vsc2U6CisgICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5jcHAudG1wIikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2lubGluZS1hbmQtbWluaWZ5LXN0eWxl
c2hlZXRzLWFuZC1zY3JpcHRzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvaW5s
aW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODky
MDBjODRlZTllNjZkMzFiNmNhZWVjYjQ0NjgwNzEyZTczN2M2OQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hl
ZXRzLWFuZC1zY3JpcHRzLnB5CkBAIC0wLDAgKzEsODEgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhv
bgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIHNjcmlw
dCBpbmxpbmVzIGFuZCBtaW5pZmllcyBleHRlcm5hbCBzdHlsZXNoZWV0cyBhbmQgc2NyaXB0cy4K
KyMgIC0gPGxpbmsgaHJlZj0iLi4uIiByZWw9InN0eWxlc2hlZXQiPiA9PiA8c3R5bGU+Li4uPC9z
dHlsZT4KKyMgIC0gPHNjcmlwdCBzcmM9Ii4uLiI+ICAgICAgICAgICAgICAgICA9PiA8c2NyaXB0
Pi4uLjwvc2NyaXB0PgorCitpbXBvcnQgY3NzbWluCitpbXBvcnQganNtaW4KK2ltcG9ydCBvcy5w
YXRoCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKKworCitkZWYgbWFpbihhcmd2KToKKworICAgIGlm
IGxlbihhcmd2KSA8IDI6CisgICAgICAgIHByaW50KCd1c2FnZTogJXMgaW5wdXRGaWxlIG91dHB1
dEZpbGUnICUgYXJndlswXSkKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGlucHV0RmlsZU5hbWUg
PSBhcmd2WzFdCisgICAgb3V0cHV0RmlsZU5hbWUgPSBhcmd2WzJdCisgICAgaW1wb3J0c0RpciA9
IG9zLnBhdGguZGlybmFtZShpbnB1dEZpbGVOYW1lKQorCisgICAgaW5wdXRGaWxlID0gb3Blbihp
bnB1dEZpbGVOYW1lLCAncicpCisgICAgaW5wdXRDb250ZW50ID0gaW5wdXRGaWxlLnJlYWQoKQor
ICAgIGlucHV0RmlsZS5jbG9zZSgpCisKKyAgICBkZWYgaW5saW5lKG1hdGNoLCBtaW5pZmllciwg
cHJlZml4LCBwb3N0Zml4KToKKyAgICAgICAgaW1wb3J0RmlsZU5hbWUgPSBtYXRjaC5ncm91cCgx
KQorICAgICAgICBmdWxsUGF0aCA9IG9zLnBhdGguam9pbihpbXBvcnRzRGlyLCBpbXBvcnRGaWxl
TmFtZSkKKyAgICAgICAgaWYgbm90IG9zLmFjY2VzcyhmdWxsUGF0aCwgb3MuRl9PSyk6CisgICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZpbGUgJXMgcmVmZXJlbmNlZCBpbiAlcyBub3QgZm91
bmQnICUgKGltcG9ydEZpbGVOYW1lLCBpbnB1dEZpbGVOYW1lKSkKKyAgICAgICAgaW1wb3J0Rmls
ZSA9IG9wZW4oZnVsbFBhdGgsICdyJykKKyAgICAgICAgaW1wb3J0Q29udGVudCA9IG1pbmlmaWVy
KGltcG9ydEZpbGUucmVhZCgpKQorICAgICAgICBpbXBvcnRGaWxlLmNsb3NlKCkKKyAgICAgICAg
cmV0dXJuICclcyVzJXMnICUgKHByZWZpeCwgaW1wb3J0Q29udGVudCwgcG9zdGZpeCkKKworICAg
IGRlZiBpbmxpbmVTdHlsZXNoZWV0KG1hdGNoKToKKyAgICAgICAgcmV0dXJuIGlubGluZShtYXRj
aCwgY3NzbWluLmNzc21pbmlmeSwgIjxzdHlsZT4iLCAiPC9zdHlsZT4iKQorCisgICAgZGVmIGlu
bGluZVNjcmlwdChtYXRjaCk6CisgICAgICAgIHJldHVybiBpbmxpbmUobWF0Y2gsIGpzbWluLmpz
bWluLCAiPHNjcmlwdD4iLCAiPC9zY3JpcHQ+IikKKworICAgIG91dHB1dENvbnRlbnQgPSByZS5z
dWIocic8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9W1wnIl0oW15cJyJdKylbXCciXT4nLCBp
bmxpbmVTdHlsZXNoZWV0LCBpbnB1dENvbnRlbnQpCisgICAgb3V0cHV0Q29udGVudCA9IHJlLnN1
YihyJzxzY3JpcHQgc3JjPVtcJyJdKFteXCciXSspW1wnIl0+PC9zY3JpcHQ+JywgaW5saW5lU2Ny
aXB0LCBvdXRwdXRDb250ZW50KQorCisgICAgb3V0cHV0RmlsZSA9IG9wZW4ob3V0cHV0RmlsZU5h
bWUsICd3JykKKyAgICBvdXRwdXRGaWxlLndyaXRlKG91dHB1dENvbnRlbnQpCisgICAgb3V0cHV0
RmlsZS5jbG9zZSgpCisKKyAgICAjIFRvdWNoIG91dHB1dCBmaWxlIGRpcmVjdG9yeSB0byBtYWtl
IHN1cmUgdGhhdCBYY29kZSB3aWxsIGNvcHkKKyAgICAjIG1vZGlmaWVkIHJlc291cmNlIGZpbGVz
LgorICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgb3V0cHV0RGlyTmFt
ZSA9IG9zLnBhdGguZGlybmFtZShvdXRwdXRGaWxlTmFtZSkKKyAgICAgICAgb3MudXRpbWUob3V0
cHV0RGlyTmFtZSwgTm9uZSkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMu
ZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL2pzbWluLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvanNtaW4ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODNkMmE1MGFjOTVkOGEwYTcwOWU1M2RkZGI3YjhhNTVkZmFiYTNjZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2pzbWluLnB5CkBA
IC0wLDAgKzEsMjM4IEBACisjIFRoaXMgY29kZSBpcyBvcmlnaW5hbCBmcm9tIGpzbWluIGJ5IERv
dWdsYXMgQ3JvY2tmb3JkLCBpdCB3YXMgdHJhbnNsYXRlZCB0bworIyBQeXRob24gYnkgQmFydWNo
IEV2ZW4uIEl0IHdhcyByZXdyaXR0ZW4gYnkgRGF2ZSBTdC5HZXJtYWluIGZvciBzcGVlZC4KKyMK
KyMgVGhlIE1JVCBMaWNlbnNlIChNSVQpCisjCisjIENvcHlyaWdodCAoYykgMjAxMyBEYXZlIFN0
Lkdlcm1haW4KKyMKKyMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorIyBvZiB0aGlzIHNvZnR3YXJlIGFu
ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVh
bAorIyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisjIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKKyMgY29waWVzIG9m
IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl
IGlzCisjIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisjCisjIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisjIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorIworIyBUSEUgU09GVFdBUkUgSVMgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorIyBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSwKKyMgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisjIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyMg
TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF
UldJU0UsIEFSSVNJTkcgRlJPTSwKKyMgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg
U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorIyBUSEUgU09GVFdBUkUu
CisKKworaW1wb3J0IHN5cworaXNfMyA9IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApCitpZiBp
c18zOgorICAgIGltcG9ydCBpbworZWxzZToKKyAgICBpbXBvcnQgU3RyaW5nSU8KKyAgICB0cnk6
CisgICAgICAgIGltcG9ydCBjU3RyaW5nSU8KKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg
ICAgIGNTdHJpbmdJTyA9IE5vbmUKKworCitfX2FsbF9fID0gWydqc21pbicsICdKYXZhc2NyaXB0
TWluaWZ5J10KK19fdmVyc2lvbl9fID0gJzIuMC45JworCisKK2RlZiBqc21pbihqcyk6CisgICAg
IiIiCisgICAgcmV0dXJucyBhIG1pbmlmaWVkIHZlcnNpb24gb2YgdGhlIGphdmFzY3JpcHQgc3Ry
aW5nCisgICAgIiIiCisgICAgaWYgbm90IGlzXzM6CisgICAgICAgIGlmIGNTdHJpbmdJTyBhbmQg
bm90IGlzaW5zdGFuY2UoanMsIHVuaWNvZGUpOgorICAgICAgICAgICAgIyBzdHJpbmdzIGNhbiB1
c2UgY1N0cmluZ0lPIGZvciBhIDN4IHBlcmZvcm1hbmNlCisgICAgICAgICAgICAjIGltcHJvdmVt
ZW50LCBidXQgdW5pY29kZSAoaW4gcHl0aG9uMikgY2Fubm90CisgICAgICAgICAgICBrbGFzcyA9
IGNTdHJpbmdJTy5TdHJpbmdJTworICAgICAgICBlbHNlOgorICAgICAgICAgICAga2xhc3MgPSBT
dHJpbmdJTy5TdHJpbmdJTworICAgIGVsc2U6CisgICAgICAgIGtsYXNzID0gaW8uU3RyaW5nSU8K
KyAgICBpbnMgPSBrbGFzcyhqcykKKyAgICBvdXRzID0ga2xhc3MoKQorICAgIEphdmFzY3JpcHRN
aW5pZnkoaW5zLCBvdXRzKS5taW5pZnkoKQorICAgIHJldHVybiBvdXRzLmdldHZhbHVlKCkKKwor
CitjbGFzcyBKYXZhc2NyaXB0TWluaWZ5KG9iamVjdCk6CisgICAgIiIiCisgICAgTWluaWZ5IGFu
IGlucHV0IHN0cmVhbSBvZiBqYXZhc2NyaXB0LCB3cml0aW5nCisgICAgdG8gYW4gb3V0cHV0IHN0
cmVhbQorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGluc3RyZWFtPU5vbmUsIG91
dHN0cmVhbT1Ob25lKToKKyAgICAgICAgc2VsZi5pbnMgPSBpbnN0cmVhbQorICAgICAgICBzZWxm
Lm91dHMgPSBvdXRzdHJlYW0KKworICAgIGRlZiBtaW5pZnkoc2VsZiwgaW5zdHJlYW09Tm9uZSwg
b3V0c3RyZWFtPU5vbmUpOgorICAgICAgICBpZiBpbnN0cmVhbSBhbmQgb3V0c3RyZWFtOgorICAg
ICAgICAgICAgc2VsZi5pbnMsIHNlbGYub3V0cyA9IGluc3RyZWFtLCBvdXRzdHJlYW0KKworICAg
ICAgICBzZWxmLmlzX3JldHVybiA9IEZhbHNlCisgICAgICAgIHNlbGYucmV0dXJuX2J1ZiA9ICcn
CisKKyAgICAgICAgZGVmIHdyaXRlKGNoYXIpOgorICAgICAgICAgICAgIyBhbGwgb2YgdGhpcyBp
cyB0byBzdXBwb3J0IGxpdGVyYWwgcmVndWxhciBleHByZXNzaW9ucy4KKyAgICAgICAgICAgICMg
c2lnaAorICAgICAgICAgICAgaWYgY2hhciBpbiAncmV0dXJuJzoKKyAgICAgICAgICAgICAgICBz
ZWxmLnJldHVybl9idWYgKz0gY2hhcgorICAgICAgICAgICAgICAgIHNlbGYuaXNfcmV0dXJuID0g
c2VsZi5yZXR1cm5fYnVmID09ICdyZXR1cm4nCisgICAgICAgICAgICBzZWxmLm91dHMud3JpdGUo
Y2hhcikKKyAgICAgICAgICAgIGlmIHNlbGYuaXNfcmV0dXJuOgorICAgICAgICAgICAgICAgIHNl
bGYucmV0dXJuX2J1ZiA9ICcnCisKKyAgICAgICAgcmVhZCA9IHNlbGYuaW5zLnJlYWQKKworICAg
ICAgICBzcGFjZV9zdHJpbmdzID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IlwKKyAgICAg
ICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OV8kXFwiCisgICAgICAgIHN0
YXJ0ZXJzLCBlbmRlcnMgPSAne1soKy0nLCAnfV0pKy0iXCcnCisgICAgICAgIG5ld2xpbmVzdGFy
dF9zdHJpbmdzID0gc3RhcnRlcnMgKyBzcGFjZV9zdHJpbmdzCisgICAgICAgIG5ld2xpbmVlbmRf
c3RyaW5ncyA9IGVuZGVycyArIHNwYWNlX3N0cmluZ3MKKyAgICAgICAgZG9fbmV3bGluZSA9IEZh
bHNlCisgICAgICAgIGRvX3NwYWNlID0gRmFsc2UKKyAgICAgICAgZXNjYXBlX3NsYXNoX2NvdW50
ID0gMAorICAgICAgICBkb2luZ19zaW5nbGVfY29tbWVudCA9IEZhbHNlCisgICAgICAgIHByZXZp
b3VzX2JlZm9yZV9jb21tZW50ID0gJycKKyAgICAgICAgZG9pbmdfbXVsdGlfY29tbWVudCA9IEZh
bHNlCisgICAgICAgIGluX3JlID0gRmFsc2UKKyAgICAgICAgaW5fcXVvdGUgPSAnJworICAgICAg
ICBxdW90ZV9idWYgPSBbXQorCisgICAgICAgIHByZXZpb3VzID0gcmVhZCgxKQorICAgICAgICBp
ZiBwcmV2aW91cyA9PSAnXFwnOgorICAgICAgICAgICAgZXNjYXBlX3NsYXNoX2NvdW50ICs9IDEK
KyAgICAgICAgbmV4dDEgPSByZWFkKDEpCisgICAgICAgIGlmIHByZXZpb3VzID09ICcvJzoKKyAg
ICAgICAgICAgIGlmIG5leHQxID09ICcvJzoKKyAgICAgICAgICAgICAgICBkb2luZ19zaW5nbGVf
Y29tbWVudCA9IFRydWUKKyAgICAgICAgICAgIGVsaWYgbmV4dDEgPT0gJyonOgorICAgICAgICAg
ICAgICAgIGRvaW5nX211bHRpX2NvbW1lbnQgPSBUcnVlCisgICAgICAgICAgICAgICAgcHJldmlv
dXMgPSBuZXh0MQorICAgICAgICAgICAgICAgIG5leHQxID0gcmVhZCgxKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICB3cml0ZShwcmV2aW91cykKKyAgICAgICAgZWxpZiBub3Qg
cHJldmlvdXM6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZWxpZiBwcmV2aW91cyA+PSAn
ISc6CisgICAgICAgICAgICBpZiBwcmV2aW91cyBpbiAiJ1wiIjoKKyAgICAgICAgICAgICAgICBp
bl9xdW90ZSA9IHByZXZpb3VzCisgICAgICAgICAgICB3cml0ZShwcmV2aW91cykKKyAgICAgICAg
ICAgIHByZXZpb3VzX25vbl9zcGFjZSA9IHByZXZpb3VzCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBwcmV2aW91c19ub25fc3BhY2UgPSAnICcKKyAgICAgICAgaWYgbm90IG5leHQxOgorICAg
ICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgIG5leHQyID0g
cmVhZCgxKQorICAgICAgICAgICAgaWYgbm90IG5leHQyOgorICAgICAgICAgICAgICAgIGxhc3Qg
PSBuZXh0MS5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbm90IChkb2luZ19zaW5nbGVfY29t
bWVudCBvciBkb2luZ19tdWx0aV9jb21tZW50KVwKKyAgICAgICAgICAgICAgICAgICAgYW5kIGxh
c3Qgbm90IGluICgnJywgJy8nKToKKyAgICAgICAgICAgICAgICAgICAgaWYgaW5fcXVvdGU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSgnJy5qb2luKHF1b3RlX2J1ZikpCisgICAgICAg
ICAgICAgICAgICAgIHdyaXRlKGxhc3QpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg
ICAgIGlmIGRvaW5nX211bHRpX2NvbW1lbnQ6CisgICAgICAgICAgICAgICAgaWYgbmV4dDEgPT0g
JyonIGFuZCBuZXh0MiA9PSAnLyc6CisgICAgICAgICAgICAgICAgICAgIGRvaW5nX211bHRpX2Nv
bW1lbnQgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICBuZXh0MiA9IHJlYWQoMSkKKyAgICAg
ICAgICAgIGVsaWYgZG9pbmdfc2luZ2xlX2NvbW1lbnQ6CisgICAgICAgICAgICAgICAgaWYgbmV4
dDEgaW4gJ1xyXG4nOgorICAgICAgICAgICAgICAgICAgICBkb2luZ19zaW5nbGVfY29tbWVudCA9
IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIG5leHQyIGluICdcclxuJzoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5leHQyID0gcmVhZCgxKQorICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgbm90IG5leHQyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAg
ICAgICAgICAgICAgICAgIGlmIHByZXZpb3VzX2JlZm9yZV9jb21tZW50IGluICcpfV0nOgorICAg
ICAgICAgICAgICAgICAgICAgICAgZG9fbmV3bGluZSA9IFRydWUKKyAgICAgICAgICAgICAgICAg
ICAgZWxpZiBwcmV2aW91c19iZWZvcmVfY29tbWVudCBpbiBzcGFjZV9zdHJpbmdzOgorICAgICAg
ICAgICAgICAgICAgICAgICAgd3JpdGUoJ1xuJykKKyAgICAgICAgICAgIGVsaWYgaW5fcXVvdGU6
CisgICAgICAgICAgICAgICAgcXVvdGVfYnVmLmFwcGVuZChuZXh0MSkKKworICAgICAgICAgICAg
ICAgIGlmIG5leHQxID09IGluX3F1b3RlOgorICAgICAgICAgICAgICAgICAgICBudW1zbGFzaGVz
ID0gMAorICAgICAgICAgICAgICAgICAgICBmb3IgYyBpbiByZXZlcnNlZChxdW90ZV9idWZbOi0x
XSk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBjICE9ICdcXCc6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbnVtc2xhc2hlcyArPSAxCisgICAgICAgICAgICAgICAg
ICAgIGlmIG51bXNsYXNoZXMgJSAyID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBpbl9x
dW90ZSA9ICcnCisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSgnJy5qb2luKHF1b3RlX2J1
ZikpCisgICAgICAgICAgICBlbGlmIG5leHQxIGluICdcclxuJzoKKyAgICAgICAgICAgICAgICBp
ZiBwcmV2aW91c19ub25fc3BhY2UgaW4gbmV3bGluZWVuZF9zdHJpbmdzIFwKKyAgICAgICAgICAg
ICAgICAgICAgb3IgcHJldmlvdXNfbm9uX3NwYWNlID4gJ34nOgorICAgICAgICAgICAgICAgICAg
ICB3aGlsZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmV4dDIgPCAnISc6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgbm90IG5leHQyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiBuZXh0MiBpbiBuZXdsaW5lc3RhcnRfc3RyaW5ncyBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9yIG5leHQyID4gJ34nIG9yIG5leHQyID09ICcvJzoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9fbmV3bGluZSA9IFRydWUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxpZiBuZXh0MSA8ICchJyBh
bmQgbm90IGluX3JlOgorICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c19ub25fc3BhY2UgaW4g
c3BhY2Vfc3RyaW5ncyBcCisgICAgICAgICAgICAgICAgICAgIG9yIHByZXZpb3VzX25vbl9zcGFj
ZSA+ICd+JykgXAorICAgICAgICAgICAgICAgICAgICBhbmQgKG5leHQyIGluIHNwYWNlX3N0cmlu
Z3Mgb3IgbmV4dDIgPiAnficpOgorICAgICAgICAgICAgICAgICAgICBkb19zcGFjZSA9IFRydWUK
KyAgICAgICAgICAgICAgICBlbGlmIHByZXZpb3VzX25vbl9zcGFjZSBpbiAnLSsnIGFuZCBuZXh0
MiA9PSBwcmV2aW91c19ub25fc3BhY2U6CisgICAgICAgICAgICAgICAgICAgICMgcHJvdGVjdCBh
Z2FpbnN0ICsgKysgb3IgLSAtLSBzZXF1ZW5jZXMKKyAgICAgICAgICAgICAgICAgICAgZG9fc3Bh
Y2UgPSBUcnVlCisgICAgICAgICAgICAgICAgZWxpZiBzZWxmLmlzX3JldHVybiBhbmQgbmV4dDIg
PT0gJy8nOgorICAgICAgICAgICAgICAgICAgICAjIHJldHVybmluZyBhIHJlZ2V4Li4uCisgICAg
ICAgICAgICAgICAgICAgIHdyaXRlKCcgJykKKyAgICAgICAgICAgIGVsaWYgbmV4dDEgPT0gJy8n
OgorICAgICAgICAgICAgICAgIGlmIGRvX3NwYWNlOgorICAgICAgICAgICAgICAgICAgICB3cml0
ZSgnICcpCisgICAgICAgICAgICAgICAgaWYgaW5fcmU6CisgICAgICAgICAgICAgICAgICAgIGlm
IHByZXZpb3VzICE9ICdcXCcgb3IgKG5vdCBlc2NhcGVfc2xhc2hfY291bnQgJSAyKSBvciBuZXh0
MiBpbiAnZ2lteSc6CisgICAgICAgICAgICAgICAgICAgICAgICBpbl9yZSA9IEZhbHNlCisgICAg
ICAgICAgICAgICAgICAgIHdyaXRlKCcvJykKKyAgICAgICAgICAgICAgICBlbGlmIG5leHQyID09
ICcvJzoKKyAgICAgICAgICAgICAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBUcnVlCisg
ICAgICAgICAgICAgICAgICAgIHByZXZpb3VzX2JlZm9yZV9jb21tZW50ID0gcHJldmlvdXNfbm9u
X3NwYWNlCisgICAgICAgICAgICAgICAgZWxpZiBuZXh0MiA9PSAnKic6CisgICAgICAgICAgICAg
ICAgICAgIGRvaW5nX211bHRpX2NvbW1lbnQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIHBy
ZXZpb3VzID0gbmV4dDEKKyAgICAgICAgICAgICAgICAgICAgbmV4dDEgPSBuZXh0MgorICAgICAg
ICAgICAgICAgICAgICBuZXh0MiA9IHJlYWQoMSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICBpbl9yZSA9IHByZXZpb3VzX25vbl9zcGFjZSBpbiAnKCw9Ols/ISZ8
JyBvciBzZWxmLmlzX3JldHVybiAgIyBsaXRlcmFsIHJlZ3VsYXIgZXhwcmVzc2lvbgorICAgICAg
ICAgICAgICAgICAgICB3cml0ZSgnLycpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIGlmIGRvX3NwYWNlOgorICAgICAgICAgICAgICAgICAgICBkb19zcGFjZSA9IEZhbHNlCisg
ICAgICAgICAgICAgICAgICAgIHdyaXRlKCcgJykKKyAgICAgICAgICAgICAgICBpZiBkb19uZXds
aW5lOgorICAgICAgICAgICAgICAgICAgICB3cml0ZSgnXG4nKQorICAgICAgICAgICAgICAgICAg
ICBkb19uZXdsaW5lID0gRmFsc2UKKworICAgICAgICAgICAgICAgIHdyaXRlKG5leHQxKQorICAg
ICAgICAgICAgICAgIGlmIG5vdCBpbl9yZSBhbmQgbmV4dDEgaW4gIidcIiI6CisgICAgICAgICAg
ICAgICAgICAgIGluX3F1b3RlID0gbmV4dDEKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVfYnVm
ID0gW10KKworICAgICAgICAgICAgcHJldmlvdXMgPSBuZXh0MQorICAgICAgICAgICAgbmV4dDEg
PSBuZXh0MgorCisgICAgICAgICAgICBpZiBwcmV2aW91cyA+PSAnISc6CisgICAgICAgICAgICAg
ICAgcHJldmlvdXNfbm9uX3NwYWNlID0gcHJldmlvdXMKKworICAgICAgICAgICAgaWYgcHJldmlv
dXMgPT0gJ1xcJzoKKyAgICAgICAgICAgICAgICBlc2NhcGVfc2xhc2hfY291bnQgKz0gMQorICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBlc2NhcGVfc2xhc2hfY291bnQgPSAwCisK
K2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgbWluaWZpZXIgPSBKYXZhc2NyaXB0TWlu
aWZ5KHN5cy5zdGRpbiwgc3lzLnN0ZG91dCkKKyAgICBtaW5pZmllci5taW5pZnkoKQorICAgIHN5
cy5zdGRvdXQud3JpdGUoJ1xuJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3h4ZC5wbCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3h4ZC5wbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZWUwOGE1MmQ4ZTY2Y2ZkYTNjMDgzZjdhZGIxNWY5NmMwOGE5YjBjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMveHhkLnBsCkBAIC0wLDAg
KzEsNDUgQEAKKyMhIC91c3IvYmluL3BlcmwKKworIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorIyBtZXQ6CisjCisjICAgICMgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAjIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgIyBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyMKKworJHZh
cm5hbWUgPSBzaGlmdDsKKyRmbmFtZSA9IHNoaWZ0OworJG91dHB1dCA9IHNoaWZ0OworCitvcGVu
KCRpbnB1dCwgJzwnLCAkZm5hbWUpIG9yIGRpZSAiQ2FuJ3Qgb3BlbiBmaWxlIGZvciByZWFkOiAk
Zm5hbWUgJCEiOworJC8gPSB1bmRlZjsKKyR0ZXh0ID0gPCRpbnB1dD47CitjbG9zZSgkaW5wdXQp
OworCiskdGV4dCA9IGpvaW4oJywgJywgbWFwKCcweCcgLiB1bnBhY2soIkgqIiwgJF8pLCBzcGxp
dCh1bmRlZiwgJHRleHQpKSk7CisKK29wZW4oJG91dHB1dCwgJz4nLCAkb3V0cHV0KSBvciBkaWUg
IkNhbid0IG9wZW4gZmlsZSBmb3Igd3JpdGU6ICRvdXRwdXQgJCEiOworcHJpbnQgJG91dHB1dCAi
Y29uc3QgdW5zaWduZWQgY2hhciAkdmFybmFtZVxbXF0gPSB7XG4kdGV4dFxufTtcbiI7CitjbG9z
ZSgkb3V0cHV0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1q
cy1idWlsdGlucyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZmNDE4NzNkYTJiNjVhNzcxMTRjZjVkNDFl
ODdhNGMwZDMwNjM3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKKysrIC9kZXYv
bnVsbApAQCAtMSwzNDMgKzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24KLSMgQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0jIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0jIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSMgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LWltcG9ydCBhcmdwYXJzZQotaW1wb3J0IGZpbGVjbXAKLWltcG9ydCBmbm1hdGNoCi1pbXBvcnQg
b3MKLWltcG9ydCByZQotaW1wb3J0IHNodXRpbAotaW1wb3J0IHN5cwotaW1wb3J0IGRhdGV0aW1l
Ci1pbXBvcnQganNvbgotCi1wYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCi1wYXJz
ZXIuYWRkX2FyZ3VtZW50KCdpbnB1dF9maWxlJywgbmFyZ3M9JyonLCBoZWxwPSdJbnB1dCBKUyBm
aWxlcyB3aGljaCBidWlsdGlucyBnZW5lcmF0ZWQgZnJvbScpCi1wYXJzZXIuYWRkX2FyZ3VtZW50
KCctLWlucHV0LWRpcmVjdG9yeScsIGhlbHA9J0FsbCBKUyBmaWxlcyB3aWxsIGJlIHVzZWQgYXMg
aW5wdXQgZnJvbSB0aGlzIGRpcmVjdG9yeS4nKQotcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1vdXRw
dXQnLCBoZWxwPSdwYXRoIHRvIG91dHB1dCBjcHAgb3IgaCBmaWxlJykKLXBhcnNlci5hZGRfYXJn
dW1lbnQoJy0tcHJlZml4JywgZGVmYXVsdD0nSlNDJywgaGVscD0ncHJlZml4IHVzZWQgZm9yIHB1
YmxpYyBtYWNyb3MnKQotcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1uYW1lc3BhY2UnLCBkZWZhdWx0
PSdKU0MnLCBoZWxwPSdDKysgbmFtZXNwYWNlJykKLWFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygp
Ci0KLWNvcHlyaWdodFRleHQgPSAiIiIgKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqL1xuCi0iIiIKLQotZ2VuZXJhdG9yU3RyaW5nID0gIi8qIEdlbmVyYXRlZCBieSAlcyBk
byBub3QgaGFuZCBlZGl0LiAqL1xuIiAlIG9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pCi0KLWZ1
bmN0aW9uSGVhZFJlZ0V4cCA9IHJlLmNvbXBpbGUociIoPzpmdW5jdGlvbnxjb25zdHJ1Y3Rvcilc
cytcdytccypcKC4qP1wpIiwgcmUuTVVMVElMSU5FIHwgcmUuUykKLWZ1bmN0aW9uTmFtZVJlZ0V4
cCA9IHJlLmNvbXBpbGUociIoPzpmdW5jdGlvbnxjb25zdHJ1Y3RvcilccysoXHcrKVxzKlwoIiwg
cmUuTVVMVElMSU5FIHwgcmUuUykKLWZ1bmN0aW9uSXNDb25zdHJ1Y3RvclJlZ0V4cCA9IHJlLmNv
bXBpbGUociJeY29uc3RydWN0b3IiLCByZS5NVUxUSUxJTkUgfCByZS5TKQotZnVuY3Rpb25QYXJh
bWV0ZXJGaW5kZXIgPSByZS5jb21waWxlKHIiXig/OmZ1bmN0aW9ufGNvbnN0cnVjdG9yKVxzKyg/
Olx3KylccypcKCgoPzpccypcdyspP1xzKig/OlxzKixccypcdyspKik/XHMqXCkiLCByZS5NVUxU
SUxJTkUgfCByZS5TKQotCi1tdWx0aWxpbmVDb21tZW50UmVnRXhwID0gcmUuY29tcGlsZShyIlwv
XCouKj9cKlwvIiwgcmUuTVVMVElMSU5FIHwgcmUuUykKLXNpbmdsZUxpbmVDb21tZW50UmVnRXhw
ID0gcmUuY29tcGlsZShyIlwvXC8uKj9cbiIsIHJlLk1VTFRJTElORSB8IHJlLlMpCi0KLWRlZiBn
ZXRDb3B5cmlnaHQoc291cmNlKToKLSAgICBjb3B5cmlnaHRCbG9jayA9IG11bHRpbGluZUNvbW1l
bnRSZWdFeHAuZmluZGFsbChzb3VyY2UpWzBdCi0gICAgY29weXJpZ2h0QmxvY2sgPSBjb3B5cmln
aHRCbG9ja1s6Y29weXJpZ2h0QmxvY2suaW5kZXgoIlJlZGlzdHJpYnV0aW9uIildCi0gICAgY29w
eVJpZ2h0TGluZXMgPSBbXQotCi0gICAgZm9yIGxpbmUgaW4gY29weXJpZ2h0QmxvY2suc3BsaXQo
IlxuIik6Ci0gICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIi8qIiwgIiIpCi0gICAgICAgIGxp
bmUgPSBsaW5lLnJlcGxhY2UoIiovIiwgIiIpCi0gICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2Uo
IioiLCAiIikKLSAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiQ29weXJpZ2h0IiwgIiIpCi0g
ICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoImNvcHlyaWdodCIsICIiKQotICAgICAgICBsaW5l
ID0gbGluZS5yZXBsYWNlKCIoQykiLCAiIikKLSAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgi
KGMpIiwgIiIpCi0gICAgICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKLSAgICAgICAgaWYgbGVuKGxp
bmUpID09IDA6Ci0gICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgIGNvcHlSaWdodExpbmVz
LmFwcGVuZChsaW5lKQotICAgIAotICAgIHJldHVybiBsaXN0KHNldChjb3B5UmlnaHRMaW5lcykp
Ci0KLWNsYXNzIEZ1bmN0aW9uKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUs
IHNvdXJjZSwgaXNDb25zdHJ1Y3RvciwgcGFyYW1ldGVycyk6Ci0gICAgICAgIHNlbGYubmFtZSA9
IG5hbWUKLSAgICAgICAgc2VsZi5zb3VyY2UgPSBzb3VyY2UKLSAgICAgICAgc2VsZi5pc0NvbnN0
cnVjdG9yID0gaXNDb25zdHJ1Y3RvcgotICAgICAgICBzZWxmLnBhcmFtZXRlcnMgPSBwYXJhbWV0
ZXJzCi0KLSAgICBkZWYgbWFuZ2xlTmFtZShzZWxmLCBvYmplY3QpOgotICAgICAgICBxTmFtZSA9
IG9iamVjdCArICIuIiArIHNlbGYubmFtZQotICAgICAgICBtYW5nbGVkTmFtZSA9ICIiCi0gICAg
ICAgIGkgPSAwCi0gICAgICAgIHdoaWxlIGkgPCBsZW4ocU5hbWUpOgotICAgICAgICAgICAgaWYg
cU5hbWVbaV0gPT0gJy4nOgotICAgICAgICAgICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xlZE5h
bWUgKyBxTmFtZVtpICsgMV0udXBwZXIoKQotICAgICAgICAgICAgICAgIGkgPSBpICsgMQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBtYW5nbGVkTmFtZSA9IG1hbmdsZWROYW1l
ICsgcU5hbWVbaV0KLSAgICAgICAgICAgIGkgPSBpICsgMQotICAgICAgICBpZiBzZWxmLmlzQ29u
c3RydWN0b3I6Ci0gICAgICAgICAgICBtYW5nbGVkTmFtZSA9IG1hbmdsZWROYW1lICsgIkNvbnN0
cnVjdG9yIgotICAgICAgICByZXR1cm4gbWFuZ2xlZE5hbWUKLQotZGVmIGdldEZ1bmN0aW9ucyhz
b3VyY2UpOgotCi0gICAgc291cmNlID0gbXVsdGlsaW5lQ29tbWVudFJlZ0V4cC5zdWIoIi8qKi8i
LCBzaW5nbGVMaW5lQ29tbWVudFJlZ0V4cC5zdWIoIi8vXG4iLCBzb3VyY2UpKQotCi0gICAgbWF0
Y2hlcyA9IFsgZiBmb3IgZiBpbiBmdW5jdGlvbkhlYWRSZWdFeHAuZmluZGl0ZXIoc291cmNlKV0K
LSAgICBmdW5jdGlvbkJvdW5kcyA9IFtdCi0gICAgc3RhcnQgPSAwCi0gICAgZW5kID0gMAotICAg
IGZvciBtYXRjaCBpbiBtYXRjaGVzOgotICAgICAgICBzdGFydCA9IG1hdGNoLnN0YXJ0KCkKLSAg
ICAgICAgaWYgc3RhcnQgPCBlbmQ6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBlbmQg
PSBtYXRjaC5lbmQoKQotICAgICAgICB3aGlsZSBzb3VyY2VbZW5kXSAhPSAneyc6Ci0gICAgICAg
ICAgICBlbmQgPSBlbmQgKyAxCi0gICAgICAgIGRlcHRoID0gMQotICAgICAgICBlbmQgPSBlbmQg
KyAxCi0gICAgICAgIHdoaWxlIGRlcHRoID4gMDoKLSAgICAgICAgICAgIGlmIHNvdXJjZVtlbmRd
ID09ICd7JzoKLSAgICAgICAgICAgICAgICBkZXB0aCA9IGRlcHRoICsgMQotICAgICAgICAgICAg
ZWxpZiBzb3VyY2VbZW5kXSA9PSAnfSc6Ci0gICAgICAgICAgICAgICAgZGVwdGggPSBkZXB0aCAt
IDEKLSAgICAgICAgICAgIGVuZCA9IGVuZCArIDEKLSAgICAgICAgZnVuY3Rpb25Cb3VuZHMuYXBw
ZW5kKChzdGFydCwgZW5kKSkKLQotICAgIGZ1bmN0aW9ucyA9IFtzb3VyY2Vbc3RhcnQ6ZW5kXS5z
dHJpcCgpIGZvciAoc3RhcnQsIGVuZCkgaW4gZnVuY3Rpb25Cb3VuZHNdCi0gICAgcmVzdWx0ID0g
W10KLSAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgotICAgICAgICBmdW5jdGlvbiA9IG11
bHRpbGluZUNvbW1lbnRSZWdFeHAuc3ViKCIiLCBmdW5jdGlvbikKLSAgICAgICAgZnVuY3Rpb25O
YW1lID0gZnVuY3Rpb25OYW1lUmVnRXhwLmZpbmRhbGwoZnVuY3Rpb24pWzBdCi0gICAgICAgIGZ1
bmN0aW9uSXNDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uSXNDb25zdHJ1Y3RvclJlZ0V4cC5tYXRjaChm
dW5jdGlvbikgIT0gTm9uZQotICAgICAgICBmdW5jdGlvblBhcmFtZXRlcnMgPSBmdW5jdGlvblBh
cmFtZXRlckZpbmRlci5maW5kYWxsKGZ1bmN0aW9uKVswXS5zcGxpdCgnLCcpCi0gICAgICAgIGlm
IGxlbihmdW5jdGlvblBhcmFtZXRlcnNbMF0pID09IDA6Ci0gICAgICAgICAgICBmdW5jdGlvblBh
cmFtZXRlcnMgPSBbXQotCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoRnVuY3Rpb24oZnVuY3Rpb25O
YW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25Jc0NvbnN0cnVjdG9yLCBmdW5jdGlvblBhcmFtZXRlcnMp
KQotICAgIHJldHVybiByZXN1bHQKLQotZGVmIHdyaXRlSW5jbHVkZURpcmVjdGl2ZXMod3JpdGVy
LCBoZWFkZXJOYW1lcyk6Ci0gICAgZm9yIGhlYWRlck5hbWUgaW4gaGVhZGVyTmFtZXM6Ci0gICAg
ICAgIHdyaXRlci53cml0ZSgiI2luY2x1ZGUgIiArIGhlYWRlck5hbWUgKyAiXG4iKQotCi1kZWYg
Z2VuZXJhdGVDb2RlKHNvdXJjZSk6Ci0gICAgaW5wdXRGaWxlID0gb3Blbihzb3VyY2UsICJyIikK
LSAgICBiYXNlTmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoc291cmNlKS5yZXBsYWNlKCIuanMiLCAi
IikKLSAgICAKLSAgICBzb3VyY2UgPSAiIgotICAgIGZvciBsaW5lIGluIGlucHV0RmlsZToKLSAg
ICAgICAgc291cmNlID0gc291cmNlICsgbGluZQotICAgIAotICAgIGlmIHN5cy5wbGF0Zm9ybSA9
PSAiY3lnd2luIjoKLSAgICAgICAgc291cmNlID0gc291cmNlLnJlcGxhY2UoIlxyXG4iLCAiXG4i
KQotICAgIHJldHVybiAoYmFzZU5hbWUsIGdldEZ1bmN0aW9ucyhzb3VyY2UpLCBnZXRDb3B5cmln
aHQoc291cmNlKSkKLQotYnVpbHRpbnMgPSBbXQotY29weXJpZ2h0cyA9IFtdCi0ob3V0cHV0X2Jh
c2UsIF8pID0gb3MucGF0aC5zcGxpdGV4dChhcmdzLm91dHB1dCkKLQotaWYgYXJncy5pbnB1dF9k
aXJlY3Rvcnk6Ci0gICAgZm9yIGZpbGUgaW4gb3MubGlzdGRpcihhcmdzLmlucHV0X2RpcmVjdG9y
eSk6Ci0gICAgICAgIGFyZ3MuaW5wdXRfZmlsZS5hcHBlbmQob3MucGF0aC5qb2luKGFyZ3MuaW5w
dXRfZGlyZWN0b3J5LCBmaWxlKSkKLQotZm9yIGZpbGUgaW4gYXJncy5pbnB1dF9maWxlOgotICAg
IGlmIGZubWF0Y2guZm5tYXRjaChmaWxlLCAnKi5qcycpOgotICAgICAgICAoYmFzZU5hbWUsIGZ1
bmN0aW9ucywgb2JqZWN0Q29weXJpZ2h0cykgPSBnZW5lcmF0ZUNvZGUoZmlsZSkKLSAgICAgICAg
Y29weXJpZ2h0cy5leHRlbmQob2JqZWN0Q29weXJpZ2h0cykKLSAgICAgICAgYnVpbHRpbnMuYXBw
ZW5kKChiYXNlTmFtZSwgZnVuY3Rpb25zKSkKLW5hbWVzcGFjZSA9IGFyZ3MubmFtZXNwYWNlCi1t
YWNyb1ByZWZpeCA9IGFyZ3MucHJlZml4Ci1zY29wZU5hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG9z
LnBhdGguYmFzZW5hbWUoYXJncy5vdXRwdXQpKVswXQotaW5jbHVkZUd1YXJkID0gc2NvcGVOYW1l
ICsgIl9IIgotaGVhZGVyTmFtZSA9IHNjb3BlTmFtZSArICIuaCIKLQotaGVhZGVySW5jbHVkZXMg
PSBbIlwiQnVpbHRpblV0aWxzLmhcIiJdIGlmIG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNlIFsiPGJ1
aWx0aW5zL0J1aWx0aW5VdGlscy5oPiJdCi1jb250ZW50SW5jbHVkZXMgPSBbIlwiQnVpbHRpbkV4
ZWN1dGFibGVzLmhcIiIsICJcIkV4ZWN1dGFibGUuaFwiIiwgIlwiSlNDZWxsSW5saW5lcy5oXCIi
LCAiXCJWTS5oXCIiXSBpZiBuYW1lc3BhY2UgPT0gIkpTQyIgZWxzZSBbIjxydW50aW1lL0V4ZWN1
dGFibGUuaD4iLCAiPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPiIsICI8cnVudGltZS9KU0NK
U1ZhbHVlSW5saW5lcy5oPiIsICI8cnVudGltZS9KU0NlbGxJbmxpbmVzLmg+IiwgIjxydW50aW1l
L1ZNLmg+IiwgIlwiV2ViQ29yZUpTQ2xpZW50RGF0YS5oXCIiXQotCi1jb3B5cmlnaHRzID0gbGlz
dChzZXQoY29weXJpZ2h0cykpCi0KLWNvcHlyaWdodEJvZHkgPSAiIgotZm9yIGNvcHlyaWdodCBp
biBjb3B5cmlnaHRzOgotICAgIGNvcHlyaWdodEJvZHkgPSBjb3B5cmlnaHRCb2R5ICsiICogQ29w
eXJpZ2h0IChDKSAiICsgY29weXJpZ2h0ICsgIlxuIgotCi1idWlsdGluc0hlYWRlciA9IG9wZW4o
b3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgInciKQotYnVpbHRpbnNJbXBsZW1lbnRhdGlvbiA9IG9w
ZW4ob3V0cHV0X2Jhc2UgKyAiLmNwcC50bXAiLCAidyIpCi1jb3B5cmlnaHRUZXh0ID0gIi8qXG4i
ICsgY29weXJpZ2h0Qm9keSArIGNvcHlyaWdodFRleHQKLWJ1aWx0aW5zSGVhZGVyLndyaXRlKCIi
IiVzCi0lcwotCi0jaWZuZGVmICVzCi0jZGVmaW5lICVzCi0KLSIiIiAlIChnZW5lcmF0b3JTdHJp
bmcsIGNvcHlyaWdodFRleHQsIGluY2x1ZGVHdWFyZCwgaW5jbHVkZUd1YXJkKSkKLQotd3JpdGVJ
bmNsdWRlRGlyZWN0aXZlcyhidWlsdGluc0hlYWRlciwgaGVhZGVySW5jbHVkZXMpCi0KLWJ1aWx0
aW5zSGVhZGVyLndyaXRlKCIiIgotbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRnVuY3Rpb25F
eGVjdXRhYmxlOwotfQotCi1uYW1lc3BhY2UgJXMgewotCi0iIiIgJSBuYW1lc3BhY2UpCi0KLWNv
ZGVSZWZlcmVuY2VzID0gW10KLQotZm9yIChvYmplY3ROYW1lLCBmdW5jdGlvbnMpIGluIGJ1aWx0
aW5zOgotICAgIHByaW50KCJHZW5lcmF0aW5nIGJpbmRpbmdzIGZvciB0aGUgJXMgYnVpbHRpbi4i
ICUgb2JqZWN0TmFtZSkKLSAgICBidWlsdGluc0hlYWRlci53cml0ZSgiLyogJXMgZnVuY3Rpb25z
ICovXG4iICUgb2JqZWN0TmFtZSkKLSAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgotICAg
ICAgICBuYW1lID0gZnVuY3Rpb24ubmFtZQotICAgICAgICBtYW5nbGVkTmFtZSA9IGZ1bmN0aW9u
Lm1hbmdsZU5hbWUob2JqZWN0TmFtZSkKLSAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5nbGVkTmFt
ZVswXS5sb3dlcigpICsgbWFuZ2xlZE5hbWVbMTpdICsgIkNvZGUiCi0gICAgICAgIGNvZGVSZWZl
cmVuY2VzLmFwcGVuZCgobWFuZ2xlZE5hbWUsIGZ1bmN0aW9uKSkKLSAgICAgICAgYnVpbHRpbnNI
ZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBjaGFyKiBzXyVzO1xuIiAlIG1hbmdsZWROYW1lKQot
ICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IGludCBzXyVzTGVuZ3Ro
O1xuIiAlIG1hbmdsZWROYW1lKQotICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJu
IGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eTtcbiIgJSBt
YW5nbGVkTmFtZSkKLSAgICBidWlsdGluc0hlYWRlci53cml0ZSgiXG4iKQotICAgIGJ1aWx0aW5z
SGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVBQ0hfJXNfQlVJTFRJTihtYWNybykgXFxcbiIg
JSAobWFjcm9QcmVmaXgsIG9iamVjdE5hbWUucmVwbGFjZSgiLiIsICJfIikudXBwZXIoKSkpCi0g
ICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgbWFuZ2xlZE5hbWUgPSBmdW5j
dGlvbi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpCi0gICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRl
KCIgICAgbWFjcm8oJXMsICVzLCAlZCkgXFxcbiIgJSAoZnVuY3Rpb24ubmFtZSwgbWFuZ2xlZE5h
bWUsIGxlbihmdW5jdGlvbi5wYXJhbWV0ZXJzKSkpCi0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUo
IlxuIikKLSAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgotICAgICAgICBidWlsdGluc0hl
YWRlci53cml0ZSgiI2RlZmluZSAlc19CVUlMVElOXyVzIDFcbiIgJSAobWFjcm9QcmVmaXgsIGZ1
bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkudXBwZXIoKSkpCi0gICAgYnVpbHRpbnNIZWFk
ZXIud3JpdGUoIlxuXG4iKQotbmFtZXMgPSBbXQotYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZp
bmUgJXNfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxcXG4iICUgbWFjcm9QcmVmaXgpCi1mb3IgKGNv
ZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKLSAgICBidWlsdGluc0hl
YWRlci53cml0ZSgiICAgIG1hY3JvKCVzLCAlcywgc18lc0xlbmd0aCkgXFxcbiIgJSAoY29kZVJl
ZmVyZW5jZSwgZnVuY3Rpb24ubmFtZSwgY29kZVJlZmVyZW5jZSkpCi0gICAgbmFtZXMuYXBwZW5k
KGZ1bmN0aW9uLm5hbWUpCi0KLWJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcblxuIikKLWJ1aWx0aW5z
SGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1h
Y3JvKSBcXFxuIiAlIG1hY3JvUHJlZml4KQotZm9yIG5hbWUgaW4gc29ydGVkKHNldChuYW1lcykp
OgotICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIgICAgbWFjcm8oJXMpIFxcXG4iICUgbmFtZSkK
LWJ1aWx0aW5zSGVhZGVyLndyaXRlKCIiIgotCi0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9HRU5F
UkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLSAgICBKU0M6
OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7Ci0KLSVz
X0ZPUkVBQ0hfQlVJTFRJTihERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIERFQ0xB
UkVfQlVJTFRJTl9HRU5FUkFUT1IKLQotI2RlZmluZSAlc19CVUlMVElOX0VYSVNUUyhuYW1lKSBk
ZWZpbmVkICVzX0JVSUxUSU5fICMjIG5hbWUKLQotfQotCi0jZW5kaWYgLy8gJXMKLQotIiIiICUg
KG1hY3JvUHJlZml4LCBtYWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIGluY2x1ZGVHdWFyZCkpCi0K
LWJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIiJXMKLSVzCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2luY2x1ZGUgIiVzIgotCi0iIiIgICUgKGdlbmVyYXRvclN0cmluZywgY29weXJp
Z2h0VGV4dCwgaGVhZGVyTmFtZSkpCi0KLXdyaXRlSW5jbHVkZURpcmVjdGl2ZXMoYnVpbHRpbnNJ
bXBsZW1lbnRhdGlvbiwgY29udGVudEluY2x1ZGVzKQotCi1idWlsdGluc0ltcGxlbWVudGF0aW9u
LndyaXRlKCIiIgotbmFtZXNwYWNlICVzIHsKLQotIiIiICAlIChuYW1lc3BhY2UpKQotCi0KLQot
Zm9yIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6Ci0gICAgc291
cmNlID0gZnVuY3Rpb24uc291cmNlCi0gICAgc291cmNlID0gIihmdW5jdGlvbiAiICsgc291cmNl
W3NvdXJjZS5pbmRleCgiKCIpOl0gKyAiKSIKLSAgICBsaW5lcyA9IGpzb24uZHVtcHMoc291cmNl
KVsxOi0xXS5zcGxpdCgiXFxuIikKLSAgICBzb3VyY2VMZW5ndGggPSBsZW4oc291cmNlKQotICAg
IHNvdXJjZSA9ICIiCi0gICAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAgICAgIHNvdXJjZSA9IHNv
dXJjZSArICgiICAgIFwiJXNcXG5cIiBcXFxuIiAlIGxpbmUpCi0gICAgYnVpbHRpbnNJbXBsZW1l
bnRhdGlvbi53cml0ZSgiY29uc3QgY2hhciogc18lcyA9XG4lcztcblxuIiAlIChjb2RlUmVmZXJl
bmNlLCBzb3VyY2UpKQotICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IGlu
dCBzXyVzTGVuZ3RoID0gJWQ7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgc291cmNlTGVuZ3RoICsg
MSkpICMgKyAxIGZvciBcbgotICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QiCi0gICAgaWYgZnVuY3Rpb24uaXNDb25zdHJ1Y3RvcjoK
LSAgICAgICAgY29uc3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNv
bnN0cnVjdCIKLSAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBKU0M6OkNv
bnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0cnVjdEFiaWxpdHkgPSAlcztcblxuIiAlIChjb2RlUmVm
ZXJlbmNlLCBjb25zdHJ1Y3RBYmlsaXR5KSkgIyArIDEgZm9yIFxuCi0KLWJ1aWx0aW5zSW1wbGVt
ZW50YXRpb24ud3JpdGUoIiIiCi0jZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2Rl
TmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAotSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFxcCi0iIiIpOwotCi1pZiAo
bmFtZXNwYWNlID09ICJKU0MiKToKLSAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIi
IntcXAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1
dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3Vy
Y2UoKSk7IFxcCi0iIiIpCi1lbHNlOgotICAgIGJ1aWx0aW5OYW1lID0gc2NvcGVOYW1lWzBdLmxv
d2VyKCkgKyBzY29wZU5hbWVbMTpdCi0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgi
IiJ7XFwKLSAgICBKU1ZNQ2xpZW50RGF0YSogY2xpZW50RGF0YSA9IHN0YXRpY19jYXN0PEpTVk1D
bGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7IFxcCi0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1
aWx0aW5GdW5jdGlvbnMoKS4lcygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNs
aWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS4lcygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFxc
Ci0iIiIlIChidWlsdGluTmFtZSwgYnVpbHRpbk5hbWUpKQotCi1idWlsdGluc0ltcGxlbWVudGF0
aW9uLndyaXRlKCIiIn0KLSVzX0ZPUkVBQ0hfQlVJTFRJTihERUZJTkVfQlVJTFRJTl9HRU5FUkFU
T1IpCi0jdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCi19Ci0KLSIiIiUgKG1hY3JvUHJl
Zml4KSkKLQotYnVpbHRpbnNIZWFkZXIuY2xvc2UoKQotYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi5j
bG9zZSgpCi0KLWlmIChub3Qgb3MucGF0aC5leGlzdHMob3V0cHV0X2Jhc2UgKyAiLmgiKSkgb3Ig
KG5vdCBmaWxlY21wLmNtcChvdXRwdXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFzZSArICIu
aCIsIHNoYWxsb3c9RmFsc2UpKToKLSAgICBpZiAob3MucGF0aC5leGlzdHMob3V0cHV0X2Jhc2Ug
KyAiLmgiKSk6Ci0gICAgICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuaCIpCi0gICAgb3Mu
cmVuYW1lKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsIG91dHB1dF9iYXNlICsgIi5oIikKLWVsc2U6
Ci0gICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5oLnRtcCIpCi0KLWlmIChub3Qgb3MucGF0
aC5leGlzdHMob3V0cHV0X2Jhc2UgKyAiLmNwcCIpKSBvciAobm90IGZpbGVjbXAuY21wKG91dHB1
dF9iYXNlICsgIi5jcHAudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmNwcCIsIHNoYWxsb3c9RmFsc2Up
KToKLSAgICBpZiAob3MucGF0aC5leGlzdHMob3V0cHV0X2Jhc2UgKyAiLmNwcCIpKToKLSAgICAg
ICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5jcHAiKQotICAgIG9zLnJlbmFtZShvdXRwdXRf
YmFzZSArICIuY3BwLnRtcCIsIG91dHB1dF9iYXNlICsgIi5jcHAiKQotZWxzZToKLSAgICBvcy5y
ZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmNwcC50bXAiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nzc21pbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jc3NtaW4ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGEwNjQwZWIyODRiYWRkNGY1YzgyZTcxYTNmY2FjNmQ4YTcxZTMwMjEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nzc21pbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICsw
LDAgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBh
cmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLWltcG9ydCByZQotCi1kZWYgY3NzbWluaWZ5KGNzcyk6Ci0gICAgcnVsZXMgPSAo
Ci0gICAgICAgIChyIlwvXCouKj9cKlwvIiwgIiIpLCAgICAgICAgICAjIGRlbGV0ZSBjb21tZW50
cwotICAgICAgICAociJcbiIsICIiKSwgICAgICAgICAgICAgICAgICAgIyBkZWxldGUgbmV3IGxp
bmVzCi0gICAgICAgIChyIlxzKyIsICIgIiksICAgICAgICAgICAgICAgICAjIGNoYW5nZSBtdWx0
aXBsZSBzcGFjZXMgdG8gb25lIHNwYWNlCi0gICAgICAgIChyIlxzPyhbOzp7fSwrPl0pXHM/Iiwg
ciJcMSIpLCAjIGRlbGV0ZSBzcGFjZSB3aGVyZSBpdCBpcyBub3QgbmVlZGVkCi0gICAgICAgIChy
Ijt9IiwgIn0iKSAgICAgICAgICAgICAgICAgICAjIGNoYW5nZSAnO30nIHRvICd9JyBiZWNhdXNl
IHRoZSBzZW1pY29sb24gaXMgbm90IG5lZWRlZAotICAgICkKLQotICAgIGNzcyA9IGNzcy5yZXBs
YWNlKCJcclxuIiwgIlxuIikKLSAgICBmb3IgcnVsZSBpbiBydWxlczoKLSAgICAgICAgY3NzID0g
cmUuY29tcGlsZShydWxlWzBdLCByZS5NVUxUSUxJTkUgfCByZS5VTklDT0RFIHwgcmUuRE9UQUxM
KS5zdWIocnVsZVsxXSwgY3NzKQotICAgIHJldHVybiBjc3MKLQotaWYgX19uYW1lX18gPT0gIl9f
bWFpbl9fIjoKLSAgICBpbXBvcnQgc3lzCi0gICAgc3lzLnN0ZG91dC53cml0ZShjc3NtaW5pZnko
c3lzLnN0ZGluLnJlYWQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtY29tYmluZWQtaW5z
cGVjdG9yLWpzb24ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDUzNjYwMzE4ZGRj
ZTNiYTc4Y2JiMDY5NmEyMTc1ODE5NjBmOTEwMTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsNjkgKzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24KLQotIyBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IGdsb2IKLWltcG9ydCBqc29uCi1pbXBvcnQgb3MKLWlt
cG9ydCBzeXMKLQotaWYgbGVuKHN5cy5hcmd2KSA8IDI6Ci0gICAgcHJpbnQoInVzYWdlOiAlcyBb
anNvbiBmaWxlcyBvciBkaXJlY3Rvcnkgb2YganNvbiBmaWxlcyAuLi5dIiAlIG9zLnBhdGguYmFz
ZW5hbWUoc3lzLmFyZ3ZbMF0pKQotICAgIHN5cy5leGl0KDEpCi0KLWZpbGVzID0gW10KLWZvciBh
cmcgaW4gc3lzLmFyZ3ZbMTpdOgotICAgIGlmIG5vdCBvcy5hY2Nlc3MoYXJnLCBvcy5GX09LKToK
LSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJGaWxlIFwiJXNcIiBub3QgZm91bmQiICUgYXJnKQot
ICAgIGVsaWYgb3MucGF0aC5pc2RpcihhcmcpOgotICAgICAgICBmaWxlcy5leHRlbmQoZ2xvYi5n
bG9iKG9zLnBhdGguam9pbihhcmcsICIqLmpzb24iKSkpCi0gICAgZWxzZToKLSAgICAgICAgZmls
ZXMuYXBwZW5kKGFyZykKLWZpbGVzLnNvcnQoKQotCi0jIFRvIGtlZXAgYXMgY2xvc2UgdG8gdGhl
IG9yaWdpbmFsIEpTT04gZm9ybWF0dGluZyBhcyBwb3NzaWJsZSwganVzdAotIyBkdW1wIGVhY2gg
SlNPTiBpbnB1dCBmaWxlIHVubW9kaWZpZWQgaW50byBhbiBhcnJheSBvZiAiZG9tYWlucyIuCi0j
IFZhbGlkYXRlIGVhY2ggZmlsZSBpcyB2YWxpZCBKU09OIGFuZCB0aGF0IHRoZXJlIGlzIGEgImRv
bWFpbiIga2V5LgotCi1maXJzdCA9IFRydWUKLXByaW50KCJ7XCJkb21haW5zXCI6WyIpCi1mb3Ig
ZmlsZSBpbiBmaWxlczoKLSAgICBpZiBmaXJzdDoKLSAgICAgICAgZmlyc3QgPSBGYWxzZQotICAg
IGVsc2U6Ci0gICAgICAgIHByaW50KCIsIikKLQotICAgIHN0cmluZyA9IG9wZW4oZmlsZSkucmVh
ZCgpCi0KLSAgICB0cnk6Ci0gICAgICAgIGRpY3Rpb25hcnkgPSBqc29uLmxvYWRzKHN0cmluZykK
LSAgICAgICAgaWYgbm90ICJkb21haW4iIGluIGRpY3Rpb25hcnk6Ci0gICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oIkZpbGUgXCIlc1wiIGRvZXMgbm90IGNvbnRhaW5zIGEgXCJkb21haW5cIiBr
ZXkuIiAlIGZpbGUpCi0gICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoIkZpbGUgXCIlc1wiIGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgSlNPTjpcbiIgJSBmaWxl
KQotICAgICAgICByYWlzZQotCi0gICAgcHJpbnQoc3RyaW5nLnJzdHJpcCgpKQotcHJpbnQoIl19
IikKLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hl
ZXRzLWFuZC1zY3JpcHRzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4OTIwMGM4
NGVlOWU2NmQzMWI2Y2FlZWNiNDQ2ODA3MTJlNzM3YzY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weQorKysg
L2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0j
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIyBUaGlzIHNjcmlwdCBpbmxpbmVz
IGFuZCBtaW5pZmllcyBleHRlcm5hbCBzdHlsZXNoZWV0cyBhbmQgc2NyaXB0cy4KLSMgIC0gPGxp
bmsgaHJlZj0iLi4uIiByZWw9InN0eWxlc2hlZXQiPiA9PiA8c3R5bGU+Li4uPC9zdHlsZT4KLSMg
IC0gPHNjcmlwdCBzcmM9Ii4uLiI+ICAgICAgICAgICAgICAgICA9PiA8c2NyaXB0Pi4uLjwvc2Ny
aXB0PgotCi1pbXBvcnQgY3NzbWluCi1pbXBvcnQganNtaW4KLWltcG9ydCBvcy5wYXRoCi1pbXBv
cnQgcmUKLWltcG9ydCBzeXMKLQotCi1kZWYgbWFpbihhcmd2KToKLQotICAgIGlmIGxlbihhcmd2
KSA8IDI6Ci0gICAgICAgIHByaW50KCd1c2FnZTogJXMgaW5wdXRGaWxlIG91dHB1dEZpbGUnICUg
YXJndlswXSkKLSAgICAgICAgcmV0dXJuIDEKLQotICAgIGlucHV0RmlsZU5hbWUgPSBhcmd2WzFd
Ci0gICAgb3V0cHV0RmlsZU5hbWUgPSBhcmd2WzJdCi0gICAgaW1wb3J0c0RpciA9IG9zLnBhdGgu
ZGlybmFtZShpbnB1dEZpbGVOYW1lKQotCi0gICAgaW5wdXRGaWxlID0gb3BlbihpbnB1dEZpbGVO
YW1lLCAncicpCi0gICAgaW5wdXRDb250ZW50ID0gaW5wdXRGaWxlLnJlYWQoKQotICAgIGlucHV0
RmlsZS5jbG9zZSgpCi0KLSAgICBkZWYgaW5saW5lKG1hdGNoLCBtaW5pZmllciwgcHJlZml4LCBw
b3N0Zml4KToKLSAgICAgICAgaW1wb3J0RmlsZU5hbWUgPSBtYXRjaC5ncm91cCgxKQotICAgICAg
ICBmdWxsUGF0aCA9IG9zLnBhdGguam9pbihpbXBvcnRzRGlyLCBpbXBvcnRGaWxlTmFtZSkKLSAg
ICAgICAgaWYgbm90IG9zLmFjY2VzcyhmdWxsUGF0aCwgb3MuRl9PSyk6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ZpbGUgJXMgcmVmZXJlbmNlZCBpbiAlcyBub3QgZm91bmQnICUgKGlt
cG9ydEZpbGVOYW1lLCBpbnB1dEZpbGVOYW1lKSkKLSAgICAgICAgaW1wb3J0RmlsZSA9IG9wZW4o
ZnVsbFBhdGgsICdyJykKLSAgICAgICAgaW1wb3J0Q29udGVudCA9IG1pbmlmaWVyKGltcG9ydEZp
bGUucmVhZCgpKQotICAgICAgICBpbXBvcnRGaWxlLmNsb3NlKCkKLSAgICAgICAgcmV0dXJuICcl
cyVzJXMnICUgKHByZWZpeCwgaW1wb3J0Q29udGVudCwgcG9zdGZpeCkKLQotICAgIGRlZiBpbmxp
bmVTdHlsZXNoZWV0KG1hdGNoKToKLSAgICAgICAgcmV0dXJuIGlubGluZShtYXRjaCwgY3NzbWlu
LmNzc21pbmlmeSwgIjxzdHlsZT4iLCAiPC9zdHlsZT4iKQotCi0gICAgZGVmIGlubGluZVNjcmlw
dChtYXRjaCk6Ci0gICAgICAgIHJldHVybiBpbmxpbmUobWF0Y2gsIGpzbWluLmpzbWluLCAiPHNj
cmlwdD4iLCAiPC9zY3JpcHQ+IikKLQotICAgIG91dHB1dENvbnRlbnQgPSByZS5zdWIocic8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9W1wnIl0oW15cJyJdKylbXCciXT4nLCBpbmxpbmVTdHls
ZXNoZWV0LCBpbnB1dENvbnRlbnQpCi0gICAgb3V0cHV0Q29udGVudCA9IHJlLnN1YihyJzxzY3Jp
cHQgc3JjPVtcJyJdKFteXCciXSspW1wnIl0+PC9zY3JpcHQ+JywgaW5saW5lU2NyaXB0LCBvdXRw
dXRDb250ZW50KQotCi0gICAgb3V0cHV0RmlsZSA9IG9wZW4ob3V0cHV0RmlsZU5hbWUsICd3JykK
LSAgICBvdXRwdXRGaWxlLndyaXRlKG91dHB1dENvbnRlbnQpCi0gICAgb3V0cHV0RmlsZS5jbG9z
ZSgpCi0KLSAgICAjIFRvdWNoIG91dHB1dCBmaWxlIGRpcmVjdG9yeSB0byBtYWtlIHN1cmUgdGhh
dCBYY29kZSB3aWxsIGNvcHkKLSAgICAjIG1vZGlmaWVkIHJlc291cmNlIGZpbGVzLgotICAgIGlm
IHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKLSAgICAgICAgb3V0cHV0RGlyTmFtZSA9IG9zLnBh
dGguZGlybmFtZShvdXRwdXRGaWxlTmFtZSkKLSAgICAgICAgb3MudXRpbWUob3V0cHV0RGlyTmFt
ZSwgTm9uZSkKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBzeXMuZXhpdChtYWlu
KHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9qc21pbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9qc21pbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODNkMmE1MGFjOTVkOGEw
YTcwOWU1M2RkZGI3YjhhNTVkZmFiYTNjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
anNtaW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMzggKzAsMCBAQAotIyBUaGlzIGNvZGUgaXMg
b3JpZ2luYWwgZnJvbSBqc21pbiBieSBEb3VnbGFzIENyb2NrZm9yZCwgaXQgd2FzIHRyYW5zbGF0
ZWQgdG8KLSMgUHl0aG9uIGJ5IEJhcnVjaCBFdmVuLiBJdCB3YXMgcmV3cml0dGVuIGJ5IERhdmUg
U3QuR2VybWFpbiBmb3Igc3BlZWQuCi0jCi0jIFRoZSBNSVQgTGljZW5zZSAoTUlUKQotIwotIyBD
b3B5cmlnaHQgKGMpIDIwMTMgRGF2ZSBTdC5HZXJtYWluCi0jCi0jIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNv
cHkKLSMgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKLSMgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwotIyB0byB1
c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us
IGFuZC9vciBzZWxsCi0jIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotIyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl
Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotIwotIyBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgot
IyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSMK
LSMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSMgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0jIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQotIyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSCi0jIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCi0jIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4KLSMgVEhFIFNPRlRXQVJFLgotCi0KLWltcG9ydCBzeXMKLWlzXzMgPSBzeXMudmVy
c2lvbl9pbmZvID49ICgzLCAwKQotaWYgaXNfMzoKLSAgICBpbXBvcnQgaW8KLWVsc2U6Ci0gICAg
aW1wb3J0IFN0cmluZ0lPCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgY1N0cmluZ0lPCi0gICAg
ZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICBjU3RyaW5nSU8gPSBOb25lCi0KLQotX19hbGxf
XyA9IFsnanNtaW4nLCAnSmF2YXNjcmlwdE1pbmlmeSddCi1fX3ZlcnNpb25fXyA9ICcyLjAuOScK
LQotCi1kZWYganNtaW4oanMpOgotICAgICIiIgotICAgIHJldHVybnMgYSBtaW5pZmllZCB2ZXJz
aW9uIG9mIHRoZSBqYXZhc2NyaXB0IHN0cmluZwotICAgICIiIgotICAgIGlmIG5vdCBpc18zOgot
ICAgICAgICBpZiBjU3RyaW5nSU8gYW5kIG5vdCBpc2luc3RhbmNlKGpzLCB1bmljb2RlKToKLSAg
ICAgICAgICAgICMgc3RyaW5ncyBjYW4gdXNlIGNTdHJpbmdJTyBmb3IgYSAzeCBwZXJmb3JtYW5j
ZQotICAgICAgICAgICAgIyBpbXByb3ZlbWVudCwgYnV0IHVuaWNvZGUgKGluIHB5dGhvbjIpIGNh
bm5vdAotICAgICAgICAgICAga2xhc3MgPSBjU3RyaW5nSU8uU3RyaW5nSU8KLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGtsYXNzID0gU3RyaW5nSU8uU3RyaW5nSU8KLSAgICBlbHNlOgotICAg
ICAgICBrbGFzcyA9IGlvLlN0cmluZ0lPCi0gICAgaW5zID0ga2xhc3MoanMpCi0gICAgb3V0cyA9
IGtsYXNzKCkKLSAgICBKYXZhc2NyaXB0TWluaWZ5KGlucywgb3V0cykubWluaWZ5KCkKLSAgICBy
ZXR1cm4gb3V0cy5nZXR2YWx1ZSgpCi0KLQotY2xhc3MgSmF2YXNjcmlwdE1pbmlmeShvYmplY3Qp
OgotICAgICIiIgotICAgIE1pbmlmeSBhbiBpbnB1dCBzdHJlYW0gb2YgamF2YXNjcmlwdCwgd3Jp
dGluZwotICAgIHRvIGFuIG91dHB1dCBzdHJlYW0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBpbnN0cmVhbT1Ob25lLCBvdXRzdHJlYW09Tm9uZSk6Ci0gICAgICAgIHNlbGYuaW5z
ID0gaW5zdHJlYW0KLSAgICAgICAgc2VsZi5vdXRzID0gb3V0c3RyZWFtCi0KLSAgICBkZWYgbWlu
aWZ5KHNlbGYsIGluc3RyZWFtPU5vbmUsIG91dHN0cmVhbT1Ob25lKToKLSAgICAgICAgaWYgaW5z
dHJlYW0gYW5kIG91dHN0cmVhbToKLSAgICAgICAgICAgIHNlbGYuaW5zLCBzZWxmLm91dHMgPSBp
bnN0cmVhbSwgb3V0c3RyZWFtCi0KLSAgICAgICAgc2VsZi5pc19yZXR1cm4gPSBGYWxzZQotICAg
ICAgICBzZWxmLnJldHVybl9idWYgPSAnJwotCi0gICAgICAgIGRlZiB3cml0ZShjaGFyKToKLSAg
ICAgICAgICAgICMgYWxsIG9mIHRoaXMgaXMgdG8gc3VwcG9ydCBsaXRlcmFsIHJlZ3VsYXIgZXhw
cmVzc2lvbnMuCi0gICAgICAgICAgICAjIHNpZ2gKLSAgICAgICAgICAgIGlmIGNoYXIgaW4gJ3Jl
dHVybic6Ci0gICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5fYnVmICs9IGNoYXIKLSAgICAgICAg
ICAgICAgICBzZWxmLmlzX3JldHVybiA9IHNlbGYucmV0dXJuX2J1ZiA9PSAncmV0dXJuJwotICAg
ICAgICAgICAgc2VsZi5vdXRzLndyaXRlKGNoYXIpCi0gICAgICAgICAgICBpZiBzZWxmLmlzX3Jl
dHVybjoKLSAgICAgICAgICAgICAgICBzZWxmLnJldHVybl9idWYgPSAnJwotCi0gICAgICAgIHJl
YWQgPSBzZWxmLmlucy5yZWFkCi0KLSAgICAgICAgc3BhY2Vfc3RyaW5ncyA9ICJhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiJcCi0gICAgICAgICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAx
MjM0NTY3ODlfJFxcIgotICAgICAgICBzdGFydGVycywgZW5kZXJzID0gJ3tbKCstJywgJ31dKSst
IlwnJwotICAgICAgICBuZXdsaW5lc3RhcnRfc3RyaW5ncyA9IHN0YXJ0ZXJzICsgc3BhY2Vfc3Ry
aW5ncwotICAgICAgICBuZXdsaW5lZW5kX3N0cmluZ3MgPSBlbmRlcnMgKyBzcGFjZV9zdHJpbmdz
Ci0gICAgICAgIGRvX25ld2xpbmUgPSBGYWxzZQotICAgICAgICBkb19zcGFjZSA9IEZhbHNlCi0g
ICAgICAgIGVzY2FwZV9zbGFzaF9jb3VudCA9IDAKLSAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1l
bnQgPSBGYWxzZQotICAgICAgICBwcmV2aW91c19iZWZvcmVfY29tbWVudCA9ICcnCi0gICAgICAg
IGRvaW5nX211bHRpX2NvbW1lbnQgPSBGYWxzZQotICAgICAgICBpbl9yZSA9IEZhbHNlCi0gICAg
ICAgIGluX3F1b3RlID0gJycKLSAgICAgICAgcXVvdGVfYnVmID0gW10KLQotICAgICAgICBwcmV2
aW91cyA9IHJlYWQoMSkKLSAgICAgICAgaWYgcHJldmlvdXMgPT0gJ1xcJzoKLSAgICAgICAgICAg
IGVzY2FwZV9zbGFzaF9jb3VudCArPSAxCi0gICAgICAgIG5leHQxID0gcmVhZCgxKQotICAgICAg
ICBpZiBwcmV2aW91cyA9PSAnLyc6Ci0gICAgICAgICAgICBpZiBuZXh0MSA9PSAnLyc6Ci0gICAg
ICAgICAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBUcnVlCi0gICAgICAgICAgICBlbGlm
IG5leHQxID09ICcqJzoKLSAgICAgICAgICAgICAgICBkb2luZ19tdWx0aV9jb21tZW50ID0gVHJ1
ZQotICAgICAgICAgICAgICAgIHByZXZpb3VzID0gbmV4dDEKLSAgICAgICAgICAgICAgICBuZXh0
MSA9IHJlYWQoMSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgd3JpdGUocHJl
dmlvdXMpCi0gICAgICAgIGVsaWYgbm90IHByZXZpb3VzOgotICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgIGVsaWYgcHJldmlvdXMgPj0gJyEnOgotICAgICAgICAgICAgaWYgcHJldmlvdXMgaW4g
IidcIiI6Ci0gICAgICAgICAgICAgICAgaW5fcXVvdGUgPSBwcmV2aW91cwotICAgICAgICAgICAg
d3JpdGUocHJldmlvdXMpCi0gICAgICAgICAgICBwcmV2aW91c19ub25fc3BhY2UgPSBwcmV2aW91
cwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcHJldmlvdXNfbm9uX3NwYWNlID0gJyAnCi0g
ICAgICAgIGlmIG5vdCBuZXh0MToKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHdoaWxl
IDE6Ci0gICAgICAgICAgICBuZXh0MiA9IHJlYWQoMSkKLSAgICAgICAgICAgIGlmIG5vdCBuZXh0
MjoKLSAgICAgICAgICAgICAgICBsYXN0ID0gbmV4dDEuc3RyaXAoKQotICAgICAgICAgICAgICAg
IGlmIG5vdCAoZG9pbmdfc2luZ2xlX2NvbW1lbnQgb3IgZG9pbmdfbXVsdGlfY29tbWVudClcCi0g
ICAgICAgICAgICAgICAgICAgIGFuZCBsYXN0IG5vdCBpbiAoJycsICcvJyk6Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIGluX3F1b3RlOgotICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUoJycu
am9pbihxdW90ZV9idWYpKQotICAgICAgICAgICAgICAgICAgICB3cml0ZShsYXN0KQotICAgICAg
ICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBpZiBkb2luZ19tdWx0aV9jb21tZW50OgotICAg
ICAgICAgICAgICAgIGlmIG5leHQxID09ICcqJyBhbmQgbmV4dDIgPT0gJy8nOgotICAgICAgICAg
ICAgICAgICAgICBkb2luZ19tdWx0aV9jb21tZW50ID0gRmFsc2UKLSAgICAgICAgICAgICAgICAg
ICAgbmV4dDIgPSByZWFkKDEpCi0gICAgICAgICAgICBlbGlmIGRvaW5nX3NpbmdsZV9jb21tZW50
OgotICAgICAgICAgICAgICAgIGlmIG5leHQxIGluICdcclxuJzoKLSAgICAgICAgICAgICAgICAg
ICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBGYWxzZQotICAgICAgICAgICAgICAgICAgICB3aGls
ZSBuZXh0MiBpbiAnXHJcbic6Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXh0MiA9IHJlYWQo
MSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBuZXh0MjoKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICBpZiBwcmV2aW91c19iZWZv
cmVfY29tbWVudCBpbiAnKX1dJzoKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvX25ld2xpbmUg
PSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGVsaWYgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQg
aW4gc3BhY2Vfc3RyaW5nczoKLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKCdcbicpCi0g
ICAgICAgICAgICBlbGlmIGluX3F1b3RlOgotICAgICAgICAgICAgICAgIHF1b3RlX2J1Zi5hcHBl
bmQobmV4dDEpCi0KLSAgICAgICAgICAgICAgICBpZiBuZXh0MSA9PSBpbl9xdW90ZToKLSAgICAg
ICAgICAgICAgICAgICAgbnVtc2xhc2hlcyA9IDAKLSAgICAgICAgICAgICAgICAgICAgZm9yIGMg
aW4gcmV2ZXJzZWQocXVvdGVfYnVmWzotMV0pOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
YyAhPSAnXFwnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bXNsYXNo
ZXMgKz0gMQotICAgICAgICAgICAgICAgICAgICBpZiBudW1zbGFzaGVzICUgMiA9PSAwOgotICAg
ICAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGUgPSAnJwotICAgICAgICAgICAgICAgICAgICAg
ICAgd3JpdGUoJycuam9pbihxdW90ZV9idWYpKQotICAgICAgICAgICAgZWxpZiBuZXh0MSBpbiAn
XHJcbic6Ci0gICAgICAgICAgICAgICAgaWYgcHJldmlvdXNfbm9uX3NwYWNlIGluIG5ld2xpbmVl
bmRfc3RyaW5ncyBcCi0gICAgICAgICAgICAgICAgICAgIG9yIHByZXZpb3VzX25vbl9zcGFjZSA+
ICd+JzoKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgMToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIG5leHQyIDwgJyEnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQyID0g
cmVhZCgxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBuZXh0MjoKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmV4dDIgaW4gbmV3bGluZXN0
YXJ0X3N0cmluZ3MgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBuZXh0MiA+
ICd+JyBvciBuZXh0MiA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv
X25ld2xpbmUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAg
ICAgICAgIGVsaWYgbmV4dDEgPCAnIScgYW5kIG5vdCBpbl9yZToKLSAgICAgICAgICAgICAgICBp
ZiAocHJldmlvdXNfbm9uX3NwYWNlIGluIHNwYWNlX3N0cmluZ3MgXAotICAgICAgICAgICAgICAg
ICAgICBvciBwcmV2aW91c19ub25fc3BhY2UgPiAnficpIFwKLSAgICAgICAgICAgICAgICAgICAg
YW5kIChuZXh0MiBpbiBzcGFjZV9zdHJpbmdzIG9yIG5leHQyID4gJ34nKToKLSAgICAgICAgICAg
ICAgICAgICAgZG9fc3BhY2UgPSBUcnVlCi0gICAgICAgICAgICAgICAgZWxpZiBwcmV2aW91c19u
b25fc3BhY2UgaW4gJy0rJyBhbmQgbmV4dDIgPT0gcHJldmlvdXNfbm9uX3NwYWNlOgotICAgICAg
ICAgICAgICAgICAgICAjIHByb3RlY3QgYWdhaW5zdCArICsrIG9yIC0gLS0gc2VxdWVuY2VzCi0g
ICAgICAgICAgICAgICAgICAgIGRvX3NwYWNlID0gVHJ1ZQotICAgICAgICAgICAgICAgIGVsaWYg
c2VsZi5pc19yZXR1cm4gYW5kIG5leHQyID09ICcvJzoKLSAgICAgICAgICAgICAgICAgICAgIyBy
ZXR1cm5pbmcgYSByZWdleC4uLgotICAgICAgICAgICAgICAgICAgICB3cml0ZSgnICcpCi0gICAg
ICAgICAgICBlbGlmIG5leHQxID09ICcvJzoKLSAgICAgICAgICAgICAgICBpZiBkb19zcGFjZToK
LSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQotICAgICAgICAgICAgICAgIGlmIGluX3Jl
OgotICAgICAgICAgICAgICAgICAgICBpZiBwcmV2aW91cyAhPSAnXFwnIG9yIChub3QgZXNjYXBl
X3NsYXNoX2NvdW50ICUgMikgb3IgbmV4dDIgaW4gJ2dpbXknOgotICAgICAgICAgICAgICAgICAg
ICAgICAgaW5fcmUgPSBGYWxzZQotICAgICAgICAgICAgICAgICAgICB3cml0ZSgnLycpCi0gICAg
ICAgICAgICAgICAgZWxpZiBuZXh0MiA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgICAgIGRvaW5n
X3NpbmdsZV9jb21tZW50ID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBwcmV2aW91c19iZWZv
cmVfY29tbWVudCA9IHByZXZpb3VzX25vbl9zcGFjZQotICAgICAgICAgICAgICAgIGVsaWYgbmV4
dDIgPT0gJyonOgotICAgICAgICAgICAgICAgICAgICBkb2luZ19tdWx0aV9jb21tZW50ID0gVHJ1
ZQotICAgICAgICAgICAgICAgICAgICBwcmV2aW91cyA9IG5leHQxCi0gICAgICAgICAgICAgICAg
ICAgIG5leHQxID0gbmV4dDIKLSAgICAgICAgICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCi0g
ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaW5fcmUgPSBwcmV2aW91
c19ub25fc3BhY2UgaW4gJygsPTpbPyEmfCcgb3Igc2VsZi5pc19yZXR1cm4gICMgbGl0ZXJhbCBy
ZWd1bGFyIGV4cHJlc3Npb24KLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJy8nKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBkb19zcGFjZToKLSAgICAgICAgICAgICAg
ICAgICAgZG9fc3BhY2UgPSBGYWxzZQotICAgICAgICAgICAgICAgICAgICB3cml0ZSgnICcpCi0g
ICAgICAgICAgICAgICAgaWYgZG9fbmV3bGluZToKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUo
J1xuJykKLSAgICAgICAgICAgICAgICAgICAgZG9fbmV3bGluZSA9IEZhbHNlCi0KLSAgICAgICAg
ICAgICAgICB3cml0ZShuZXh0MSkKLSAgICAgICAgICAgICAgICBpZiBub3QgaW5fcmUgYW5kIG5l
eHQxIGluICInXCIiOgotICAgICAgICAgICAgICAgICAgICBpbl9xdW90ZSA9IG5leHQxCi0gICAg
ICAgICAgICAgICAgICAgIHF1b3RlX2J1ZiA9IFtdCi0KLSAgICAgICAgICAgIHByZXZpb3VzID0g
bmV4dDEKLSAgICAgICAgICAgIG5leHQxID0gbmV4dDIKLQotICAgICAgICAgICAgaWYgcHJldmlv
dXMgPj0gJyEnOgotICAgICAgICAgICAgICAgIHByZXZpb3VzX25vbl9zcGFjZSA9IHByZXZpb3Vz
Ci0KLSAgICAgICAgICAgIGlmIHByZXZpb3VzID09ICdcXCc6Ci0gICAgICAgICAgICAgICAgZXNj
YXBlX3NsYXNoX2NvdW50ICs9IDEKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ZXNjYXBlX3NsYXNoX2NvdW50ID0gMAotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAg
IG1pbmlmaWVyID0gSmF2YXNjcmlwdE1pbmlmeShzeXMuc3RkaW4sIHN5cy5zdGRvdXQpCi0gICAg
bWluaWZpZXIubWluaWZ5KCkKLSAgICBzeXMuc3Rkb3V0LndyaXRlKCdcbicpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMveHhkLnBsIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNWVlMDhhNTJkOGU2NmNmZGEzYzA4M2Y3YWRiMTVmOTZjMDhhOWIwYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMveHhkLnBsCisrKyAvZGV2L251bGwKQEAgLTEs
NDUgKzAsMCBAQAotIyEgL3Vzci9iaW4vcGVybAotCi0jIENvcHlyaWdodCAoQykgMjAxMC0yMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgIyBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICMgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAjIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIwotCi0k
dmFybmFtZSA9IHNoaWZ0OwotJGZuYW1lID0gc2hpZnQ7Ci0kb3V0cHV0ID0gc2hpZnQ7Ci0KLW9w
ZW4oJGlucHV0LCAnPCcsICRmbmFtZSkgb3IgZGllICJDYW4ndCBvcGVuIGZpbGUgZm9yIHJlYWQ6
ICRmbmFtZSAkISI7Ci0kLyA9IHVuZGVmOwotJHRleHQgPSA8JGlucHV0PjsKLWNsb3NlKCRpbnB1
dCk7Ci0KLSR0ZXh0ID0gam9pbignLCAnLCBtYXAoJzB4JyAuIHVucGFjaygiSCoiLCAkXyksIHNw
bGl0KHVuZGVmLCAkdGV4dCkpKTsKLQotb3Blbigkb3V0cHV0LCAnPicsICRvdXRwdXQpIG9yIGRp
ZSAiQ2FuJ3Qgb3BlbiBmaWxlIGZvciB3cml0ZTogJG91dHB1dCAkISI7Ci1wcmludCAkb3V0cHV0
ICJjb25zdCB1bnNpZ25lZCBjaGFyICR2YXJuYW1lXFtcXSA9IHtcbiR0ZXh0XG59O1xuIjsKLWNs
b3NlKCRvdXRwdXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxNjc3YzFhZjNmMzlkNWIwY2Rl
OWYzNzI1Y2U1ZTM5MmE0NTllZTZlLi5kZjg2NTBlY2E0MTY2ODUwNDQwMGM5YTE1OTFiOWE0OGY4
ZDcwOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODIwLDE1ICs4MjAsMTIgQEAgc2V0KFdl
YkNvcmVfSURMX0ZJTEVTCiAKIGlmIChXSU4zMikKICAgICBpZiAoSU5URVJOQUxfQlVJTEQpCi0g
ICAgICAgIHNldChXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUiAiJHtDTUFLRV9CSU5BUllf
RElSfS8uLi9pbmNsdWRlL3ByaXZhdGUvSmF2YVNjcmlwdENvcmUiKQotICAgICAgICBzZXQoV2Vi
Q29yZV9HRU5FUkFURV9KU19CVUlMVElOU19TQ1JJUFRTX0RJUiAiJHtDTUFLRV9CSU5BUllfRElS
fS8uLi9pbmNsdWRlL3ByaXZhdGUvSmF2YVNjcmlwdENvcmUiKQorICAgICAgICBzZXQoSmF2YVNj
cmlwdENvcmVfU0NSSVBUU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vLi4vaW5jbHVkZS9wcml2
YXRlL0phdmFTY3JpcHRDb3JlIikKICAgICBlbHNlICgpCi0gICAgICAgIHNldChXZWJDb3JlX0lO
U1BFQ1RPUl9TQ1JJUFRTX0RJUiAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9zY3Jp
cHRzIikKLSAgICAgICAgc2V0KFdlYkNvcmVfR0VORVJBVEVfSlNfQlVJTFRJTlNfU0NSSVBUU19E
SVIgIiR7SkFWQVNDUklQVENPUkVfRElSfSIpCisgICAgICAgIHNldChKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUiAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzIikKICAgICBlbmRpZiAoKQogZWxzZSAoKQotICAgIHNldChXZWJD
b3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUiAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rv
ci9zY3JpcHRzIikKLSAgICBzZXQoV2ViQ29yZV9HRU5FUkFURV9KU19CVUlMVElOU19TQ1JJUFRT
X0RJUiAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9IikKKyAgICBzZXQoSmF2YVNjcmlwdENvcmVfU0NS
SVBUU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElSfS9TY3JpcHRzIikKIGVuZGlmICgpCiAKIHNl
dChXZWJDb3JlX1NPVVJDRVMKQEAgLTMzNzAsMTAgKzMzNjcsMTAgQEAgV0VCS0lUX0lOQ0xVREVf
Q09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVU
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5oICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5l
ZC5odG1sCiAgICAgTUFJTl9ERVBFTkRFTkNZIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFn
ZS5odG1sCi0gICAgREVQRU5EUyAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS94eGQu
cGwgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0vaW5saW5lLWFuZC1taW5pZnktc3R5
bGVzaGVldHMtYW5kLXNjcmlwdHMucHkKKyAgICBERVBFTkRTICR7SmF2YVNjcmlwdENvcmVfU0NS
SVBUU19ESVJ9L3h4ZC5wbCAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9pbmxpbmUtYW5k
LW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weQogICAgIERFUEVORFMgaW5zcGVjdG9y
L0luc3BlY3Rvck92ZXJsYXlQYWdlLmNzcyBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2Uu
anMKLSAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQRUNUT1Jf
U0NSSVBUU19ESVJ9L2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5
ICR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFnZS5odG1sICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5o
dG1sCi0gICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9T
Q1JJUFRTX0RJUn0veHhkLnBsIEluc3BlY3Rvck92ZXJsYXlQYWdlX2h0bWwgJHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3Rvck92ZXJsYXlQYWdlLmNvbWJpbmVkLmh0bWwgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3Rvck92ZXJsYXlQYWdlLmgKKyAgICBD
T01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9
L2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICR7V0VCQ09SRV9E
SVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFnZS5odG1sICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1sCisgICAgQ09N
TUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhk
LnBsIEluc3BlY3Rvck92ZXJsYXlQYWdlX2h0bWwgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L0luc3BlY3Rvck92ZXJsYXlQYWdlLmNvbWJpbmVkLmh0bWwgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L0luc3BlY3Rvck92ZXJsYXlQYWdlLmgKICAgICBWRVJCQVRJTSkKIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW5z
cGVjdG9yT3ZlcmxheVBhZ2UuaCkKIApAQCAtMzM4MiwxMCArMzM3OSwxMCBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3Rv
ck92ZXJsYXlQYWdlLgogYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIE9VVFBVVCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaCAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWluLmpz
CiAgICAgTUFJTl9ERVBFTkRFTkNZIGluc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJj
ZS5qcwotICAgIERFUEVORFMgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBs
ICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2pzbWluLnB5CisgICAgREVQRU5EUyAk
e0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS94eGQucGwgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUn0vanNtaW4ucHkKICAgICBDT01NQU5EIGVjaG8gIi8vIyBzb3VyY2VVUkw9X19XZWJJ
bnNwZWN0b3JDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZV9fIiA+ICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4uanMKLSAgICBDT01N
QU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9
L2pzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJTW9kdWxl
U291cmNlLmpzID4+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Db21tYW5kTGluZUFQ
SU1vZHVsZVNvdXJjZS5taW4uanMKLSAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dl
YkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS94eGQucGwgQ29tbWFuZExpbmVBUElNb2R1bGVT
b3VyY2VfanMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9k
dWxlU291cmNlLm1pbi5qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ29tbWFuZExp
bmVBUElNb2R1bGVTb3VyY2UuaAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vanNtaW4ucHkgPCAke1dFQkNPUkVfRElSfS9pbnNw
ZWN0b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMgPj4gJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcworICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L3h4ZC5w
bCBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZV9qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWluLmpzICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oCiAgICAgVkVSQkFUSU0p
CiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmgpCiAKQEAgLTMzOTgsOSArMzM5NSw5IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vQ29sb3JEYXRhLmNwcCkKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlckNTUy5oICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmNzcwogICAgIE1BSU5fREVQRU5ERU5DWSB4bWwv
WE1MVmlld2VyLmNzcwotICAgIERFUEVORFMgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJ
Un0veHhkLnBsICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2Nzc21pbi5weQotICAg
IENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRT
X0RJUn0vY3NzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0veG1sL1hNTFZpZXdlci5jc3MgPiAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyLm1pbi5jc3MKLSAgICBDT01NQU5E
ICR7UEVSTF9FWEVDVVRBQkxFfSAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS94eGQu
cGwgWE1MVmlld2VyX2NzcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2Vy
Lm1pbi5jc3MgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlckNTUy5oCisg
ICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS94eGQucGwgJHtKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUn0vY3NzbWluLnB5CisgICAgQ09NTUFORCAke1BZVEhPTl9FWEVD
VVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9jc3NtaW4ucHkgPCAke1dFQkNP
UkVfRElSfS94bWwvWE1MVmlld2VyLmNzcyA+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9YTUxWaWV3ZXIubWluLmNzcworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7SmF2
YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L3h4ZC5wbCBYTUxWaWV3ZXJfY3NzICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmNzcyAke0RFUklWRURfU09VUkNFU19X
RUJDT1JFX0RJUn0vWE1MVmlld2VyQ1NTLmgKICAgICBWRVJCQVRJTSkKIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyQ1NT
LmgpCiAKQEAgLTM0MDksOSArMzQwNiw5IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyQ1NTLmgpCiBhZGRfY3VzdG9t
X2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxW
aWV3ZXJKUy5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmpz
CiAgICAgTUFJTl9ERVBFTkRFTkNZIHhtbC9YTUxWaWV3ZXIuanMKLSAgICBERVBFTkRTICR7V2Vi
Q29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L3h4ZC5wbCAke1dlYkNvcmVfSU5TUEVDVE9SX1ND
UklQVFNfRElSfS9qc21pbi5weQotICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtX
ZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0vanNtaW4ucHkgPCAke1dFQkNPUkVfRElSfS94
bWwvWE1MVmlld2VyLmpzID4gJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdl
ci5taW4uanMKLSAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dlYkNvcmVfSU5TUEVD
VE9SX1NDUklQVFNfRElSfS94eGQucGwgWE1MVmlld2VyX2pzICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9YTUxWaWV3ZXJKUy5oCisgICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElS
fS94eGQucGwgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vanNtaW4ucHkKKyAgICBDT01N
QU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2pz
bWluLnB5IDwgJHtXRUJDT1JFX0RJUn0veG1sL1hNTFZpZXdlci5qcyA+ICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmpzCisgICAgQ09NTUFORCAke1BFUkxfRVhF
Q1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsIFhNTFZpZXdlcl9q
cyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyLm1pbi5qcyAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VySlMuaAogICAgIFZFUkJBVElNKQogbGlz
dChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Y
TUxWaWV3ZXJKUy5oKQogCkBAIC0zNTAxLDcgKzM0OTgsNyBAQCBpZiAoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFMpCiAgICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vVXNlckFnZW50U2NyaXB0c0RhdGEuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9Vc2VyQWdlbnRTY3JpcHRzLmgKICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09SRV9E
SVJ9L1NjcmlwdHMvbWFrZS1qcy1maWxlLWFycmF5cy5weQogICAgICAgICBERVBFTkRTICR7V2Vi
Q29yZV9VU0VSX0FHRU5UX1NDUklQVFN9Ci0gICAgICAgIENPTU1BTkQgIlBZVEhPTlBBVEg9JHtX
ZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0iICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V0VC
Q09SRV9ESVJ9L1NjcmlwdHMvbWFrZS1qcy1maWxlLWFycmF5cy5weSAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vVXNlckFnZW50U2NyaXB0cy5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9Vc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHAgJHtXZWJDb3JlX1VTRVJfQUdFTlRfU0NS
SVBUU30KKyAgICAgICAgQ09NTUFORCAiUFlUSE9OUEFUSD0ke0phdmFTY3JpcHRDb3JlX1NDUklQ
VFNfRElSfSIgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9tYWtl
LWpzLWZpbGUtYXJyYXlzLnB5ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Vc2VyQWdl
bnRTY3JpcHRzLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1VzZXJBZ2VudFNjcmlw
dHNEYXRhLmNwcCAke1dlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRTfQogICAgICAgICBWRVJCQVRJ
TSkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L1VzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCkKICAgICBBRERfU09VUkNFX1dFQkNP
UkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXZWJDb3JlX1VTRVJfQUdFTlRfU0NSSVBUU19ERVBF
TkRFTkNJRVN9IFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCBVc2VyQWdlbnRTY3JpcHRzLmgpCkBA
IC0zNTkzLDkgKzM1OTAsOSBAQCBmb3JlYWNoIChfYnVpbHRpbmpzICR7V0VCQ09SRV9KU19CVUlM
VElOU30pCiAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgICAgICBPVVRQVVQgJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnNXcmFwcGVyLmggJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuaCAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5jcHAKICAgICAgICAgTUFJTl9ERVBFTkRF
TkNZICR7V0VCQ09SRV9ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCi0gICAgICAgIERFUEVORFMg
JHtXZWJDb3JlX0dFTkVSQVRFX0pTX0JVSUxUSU5TX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1qcy1i
dWlsdGlucworICAgICAgICBERVBFTkRTICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2dl
bmVyYXRlLWpzLWJ1aWx0aW5zCiAgICAgICAgIERFUEVORFMgJHtfYnVpbHRpbmpzfQotICAgICAg
ICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICR7X2J1aWx0aW5qc30gLS1vdXRwdXRfZGly
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAtLWdlbmVyYXRlX2pzX2J1aWx0aW5zX3Bh
dGggJHtXZWJDb3JlX0dFTkVSQVRFX0pTX0JVSUxUSU5TX1NDUklQVFNfRElSfQorICAgICAgICBD
T01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9n
ZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICR7X2J1aWx0aW5qc30gLS1vdXRwdXRfZGlyICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAtLWdlbmVyYXRlX2pzX2J1aWx0aW5zX3BhdGgg
JHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0KICAgICAgICAgVkVSQkFUSU0pCiAgICAgbGlz
dChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDQ2NjU0ZjJhZDMxODg5ZGIzNDI1N2JmZDhjOGZhYzkzZTJkZjA0YjUuLjBiYWU5MGFlZGQw
NWNlNThlZWQ2OWJhN2UwNTc1MDU0MWYzOWZiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtODk2LDggKzg5Niw4IEBAIFNlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuY3Bw
IDogJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAuCiBhbGwgOiBY
TUxWaWV3ZXJDU1MuaAogCiBYTUxWaWV3ZXJDU1MuaCA6IHhtbC9YTUxWaWV3ZXIuY3NzCi0JJChQ
WVRIT04pICQoSW5zcGVjdG9yU2NyaXB0cykvY3NzbWluLnB5IDwiJChXZWJDb3JlKS94bWwvWE1M
Vmlld2VyLmNzcyIgPiAuL1hNTFZpZXdlci5taW4uY3NzCi0JJChQRVJMKSAkKEluc3BlY3RvclNj
cmlwdHMpL3h4ZC5wbCBYTUxWaWV3ZXJfY3NzIC4vWE1MVmlld2VyLm1pbi5jc3MgWE1MVmlld2Vy
Q1NTLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvY3NzbWluLnB5
IDwiJChXZWJDb3JlKS94bWwvWE1MVmlld2VyLmNzcyIgPiAuL1hNTFZpZXdlci5taW4uY3NzCisJ
JChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwgWE1MVmlld2VyX2Nz
cyAuL1hNTFZpZXdlci5taW4uY3NzIFhNTFZpZXdlckNTUy5oCiAJJChERUxFVEUpIFhNTFZpZXdl
ci5taW4uY3NzCiAKICMgLS0tLS0tLS0KQEAgLTkwNyw4ICs5MDcsOCBAQCBYTUxWaWV3ZXJDU1Mu
aCA6IHhtbC9YTUxWaWV3ZXIuY3NzCiBhbGwgOiBYTUxWaWV3ZXJKUy5oCiAKIFhNTFZpZXdlckpT
LmggOiB4bWwvWE1MVmlld2VyLmpzCi0JJChQWVRIT04pICQoSW5zcGVjdG9yU2NyaXB0cykvanNt
aW4ucHkgPCIkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuanMiID4gLi9YTUxWaWV3ZXIubWluLmpz
Ci0JJChQRVJMKSAkKEluc3BlY3RvclNjcmlwdHMpL3h4ZC5wbCBYTUxWaWV3ZXJfanMgLi9YTUxW
aWV3ZXIubWluLmpzIFhNTFZpZXdlckpTLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUikvanNtaW4ucHkgPCIkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuanMiID4gLi9Y
TUxWaWV3ZXIubWluLmpzCisJJChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94
eGQucGwgWE1MVmlld2VyX2pzIC4vWE1MVmlld2VyLm1pbi5qcyBYTUxWaWV3ZXJKUy5oCiAJJChE
RUxFVEUpIFhNTFZpZXdlci5taW4uanMKIAogIyAtLS0tLS0tLQpAQCAtMTAwMiw3ICsxMDAyLDcg
QEAgaWZkZWYgVVNFUl9BR0VOVF9TQ1JJUFRTCiBhbGwgOiBVc2VyQWdlbnRTY3JpcHRzLmgKIAog
VXNlckFnZW50U2NyaXB0cy5oIDogU2NyaXB0cy9tYWtlLWpzLWZpbGUtYXJyYXlzLnB5ICQoVVNF
Ul9BR0VOVF9TQ1JJUFRTKQotCVBZVEhPTlBBVEg9JChJbnNwZWN0b3JTY3JpcHRzKSAkKFBZVEhP
TikgJDwgJEAgVXNlckFnZW50U2NyaXB0c0RhdGEuY3BwICQoVVNFUl9BR0VOVF9TQ1JJUFRTKQor
CVBZVEhPTlBBVEg9JChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikgJChQWVRIT04pICQ8ICRA
IFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCAkKFVTRVJfQUdFTlRfU0NSSVBUUykKIGVuZGlmCiAK
ICMgLS0tLS0tLS0KQEAgLTEyMTgsMTYgKzEyMTgsMTYgQEAgSlMlLmggOiAlLmlkbCAkKEpTX0JJ
TkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChXSU5ET1dfQ09OU1RSVUNU
T1IKIGFsbCA6IEluc3BlY3Rvck92ZXJsYXlQYWdlLmgKIAogSW5zcGVjdG9yT3ZlcmxheVBhZ2Uu
aCA6IEluc3BlY3Rvck92ZXJsYXlQYWdlLmh0bWwgSW5zcGVjdG9yT3ZlcmxheVBhZ2UuY3NzIElu
c3BlY3Rvck92ZXJsYXlQYWdlLmpzCi0JJChQWVRIT04pICQoSW5zcGVjdG9yU2NyaXB0cykvaW5s
aW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgJChXZWJDb3JlKS9pbnNw
ZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAuL0luc3BlY3Rvck92ZXJsYXlQYWdlLmNv
bWJpbmVkLmh0bWwKLQkkKFBFUkwpICQoSW5zcGVjdG9yU2NyaXB0cykveHhkLnBsIEluc3BlY3Rv
ck92ZXJsYXlQYWdlX2h0bWwgLi9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1sIElu
c3BlY3Rvck92ZXJsYXlQYWdlLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRT
X0RJUikvaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgJChXZWJD
b3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAuL0luc3BlY3Rvck92ZXJs
YXlQYWdlLmNvbWJpbmVkLmh0bWwKKwkkKFBFUkwpICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVIpL3h4ZC5wbCBJbnNwZWN0b3JPdmVybGF5UGFnZV9odG1sIC4vSW5zcGVjdG9yT3ZlcmxheVBh
Z2UuY29tYmluZWQuaHRtbCBJbnNwZWN0b3JPdmVybGF5UGFnZS5oCiAJJChERUxFVEUpIEluc3Bl
Y3Rvck92ZXJsYXlQYWdlLmNvbWJpbmVkLmh0bWwKIAogYWxsIDogQ29tbWFuZExpbmVBUElNb2R1
bGVTb3VyY2UuaAogCiBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oIDogQ29tbWFuZExpbmVB
UElNb2R1bGVTb3VyY2UuanMKIAllY2hvICIvLyMgc291cmNlVVJMPV9fV2ViSW5zcGVjdG9yQ29t
bWFuZExpbmVBUElNb2R1bGVTb3VyY2VfXyIgPiAuL0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNl
Lm1pbi5qcwotCSQoUFlUSE9OKSAkKEluc3BlY3RvclNjcmlwdHMpL2pzbWluLnB5IDwkKFdlYkNv
cmUpL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5qcyA+PiAuL0NvbW1hbmRM
aW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcwotCSQoUEVSTCkgJChJbnNwZWN0b3JTY3JpcHRzKS94
eGQucGwgQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2VfanMgLi9Db21tYW5kTGluZUFQSU1vZHVs
ZVNvdXJjZS5taW4uanMgQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaAorCSQoUFlUSE9OKSAk
KEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9qc21pbi5weSA8JChXZWJDb3JlKS9pbnNwZWN0
b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMgPj4gLi9Db21tYW5kTGluZUFQSU1vZHVs
ZVNvdXJjZS5taW4uanMKKwkkKFBFUkwpICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL3h4
ZC5wbCBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZV9qcyAuL0NvbW1hbmRMaW5lQVBJTW9kdWxl
U291cmNlLm1pbi5qcyBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oCiAJJChERUxFVEUpIENv
bW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcwogCiAjIFdlYiBSZXBsYXkgaW5wdXRzIGdl
bmVyYXRvcgpAQCAtMTI2Myw3ICsxMjYzLDcgQEAgV0VCQ09SRV9KU19CVUlMVElOUyA9IFwKIGFs
bCA6ICQoV0VCQ09SRV9KU19CVUlMVElOUzolLmpzPSVCdWlsdGlucy5jcHApCiAKICVCdWlsdGlu
cy5jcHA6ICUuanMKLQkkKFBZVEhPTikgJChXZWJDb3JlKS9nZW5lcmF0ZS1qcy1idWlsdGlucyAt
LWlucHV0ICQ8IC0tZ2VuZXJhdGVfanNfYnVpbHRpbnNfcGF0aCAkKEdlbmVyYXRlSlNCdWlsdGlu
c1NjcmlwdHMpCisJJChQWVRIT04pICQoV2ViQ29yZSkvZ2VuZXJhdGUtanMtYnVpbHRpbnMgLS1p
bnB1dCAkPCAtLWdlbmVyYXRlX2pzX2J1aWx0aW5zX3BhdGggJChKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUikKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgzMWZkYTAxMGY1
NzY3YmM1MzRjZWMzZWU2Yjg4ZmE4NTYxMTU4NjMuLjU1OTU3YzFjOTczOGZkNTNiOGQ5OTgwNzRj
NDJkYzZhMjdlMGZlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MTY4LDcgKzI4MTY4LDcgQEAKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4v
c2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmVcIlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV2ViQ29y
ZVxuZXhwb3J0IFdlYkNvcmU9XCJXZWJDb3JlXCJcbmV4cG9ydCBJbnNwZWN0b3JTY3JpcHRzPVwi
JHtKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSfVwiXG5leHBvcnQgV2ViUmVwbGF5
U2NyaXB0cz1cIiR7SkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJUn1cIlxuZXhwb3J0
IEdlbmVyYXRlSlNCdWlsdGluc1NjcmlwdHM9XCIke0pBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVB
REVSU19ESVJ9XCJcblxuaWYgWyAhICRDQyBdOyB0aGVuXG4gICAgZXhwb3J0IENDPVwiYHhjcnVu
IC1maW5kIGNsYW5nYFwiXG5maVxuXG5pZiBbICEgJEdQRVJGIF07IHRoZW5cbiAgICBleHBvcnQg
R1BFUkY9XCJgeGNydW4gLWZpbmQgZ3BlcmZgXCJcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9
IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1c
IiA9IFwiaW5zdGFsbGhkcnNcIiBdOyB0aGVuXG4gICAgbWFrZSAgLS1uby1idWlsdGluLXJ1bGVz
IC1mIFwiV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwg
LW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtST09UfVwiXG5maVxuIjsKKwkJCXNoZWxs
U2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmVcIlxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZVwiXG5cbi9iaW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1cIiBXZWJDb3JlXG5leHBvcnQgV2Vi
Q29yZT1cIldlYkNvcmVcIlxuZXhwb3J0IEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSPVwiJHtK
QVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSfVwiXG5leHBvcnQgV2ViUmVwbGF5U2Ny
aXB0cz1cIiR7SkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJUn1cIlxuXG5pZiBbICEg
JENDIF07IHRoZW5cbiAgICBleHBvcnQgQ0M9XCJgeGNydW4gLWZpbmQgY2xhbmdgXCJcbmZpXG5c
bmlmIFsgISAkR1BFUkYgXTsgdGhlblxuICAgIGV4cG9ydCBHUEVSRj1cImB4Y3J1biAtZmluZCBn
cGVyZmBcIlxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJ
T059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIF07
IHRoZW5cbiAgICBtYWtlICAtLW5vLWJ1aWx0aW4tcnVsZXMgLWYgXCJXZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JP
T1Q9XCIke1NES1JPT1R9XCJcbmZpXG4iOwogCQl9OwogLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVp
bGRQaGFzZSBzZWN0aW9uICovCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263491</attachid>
            <date>2015-10-19 11:02:37 -0700</date>
            <delta_ts>2015-10-19 11:05:08 -0700</delta_ts>
            <desc>For Landing</desc>
            <filename>bug-150245-20151019110155.patch</filename>
            <type>text/plain</type>
            <size>128234</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZTg1YTZjYzAyMjZhZGNjY2M1ZDE1MGYzOGNlYTMxNDEwODgxYTk0Li42M2IwZWE3ODMyZWI5MTM2
NTYzMmY0YWQwNjc5NDExMDZlZTk2MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0xMC0xNiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVbmlmeSBoYW5kbGluZyBvZiBKYXZhU2NyaXB0Q29yZSBzY3JpcHRzIHRoYXQgYXJl
IHVzZWQgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUwMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSBhbGwgc3RhbmRhbG9uZSBKYXZhU2NyaXB0Q29yZSBzY3JpcHRzIHRoYXQg
YXJlIHVzZWQgYnkgV2ViQ29yZSBpbnRvIHRoZQorICAgICAgICBKYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzIGRpcmVjdG9yeS4gVXNlIEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSIHRvIHJlZmVyCisg
ICAgICAgIHRvIHRoZSBwYXRoIGZvciB0aGVzZSBzY3JpcHRzLgorCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKworICAgICAgICAgICAgRGVmaW5lIGFuZCB1c2UgSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICAgICBNYWtlIGEgbmV3IGdyb3VwIGluIHRoZSBYY29k
ZSBwcm9qZWN0IGFuZCBjbGVhbiB1cCByZWZlcmVuY2VzLgorCisgICAgICAgICogUGxhdGZvcm1X
aW4uY21ha2U6CisKKyAgICAgICAgICAgIEZvciBXaW5kb3dzLCBjb3B5IHRoZXNlIHNjcmlwdHMg
b3ZlciB0byBGb3J3YXJkaW5nSGVhZGVycy9TY3JpcHRzIHNpbmNlIHRoZXkKKyAgICAgICAgICAg
IGNhbm5vdCBiZSB1c2VkIGRpcmVjdGx5IGZyb20gSkFWQVNDUklQVENPUkVfRElSIGluIEFwcGxl
V2luIGJ1aWxkcy4gRG8gdGhlIHNhbWUKKyAgICAgICAgICAgIHRoaW5nIGZvciBib3RoIFdpbmRv
d3MgdmFyaWFudHMgdG8gYmUgY29uc2lzdGVudCBhYm91dCBpdC4KKworICAgICAgICAqIFNjcmlw
dHMvY3NzbWluLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2Nzc21pbi5weS4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVk
LWluc3BlY3Rvci1qc29uLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5LgorICAg
ICAgICAqIFNjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnM6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMuCisgICAgICAgICogU2NyaXB0cy9p
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weTogUmVuYW1lZCBmcm9t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlm
eS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weS4KKyAgICAgICAgKiBTY3JpcHRzL2pzbWluLnB5
OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2pz
bWluLnB5LgorICAgICAgICAqIFNjcmlwdHMveHhkLnBsOiBSZW5hbWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbC4KKwogMjAxNS0xMC0xOSAgQ3Nh
YmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0aGUgRU5B
QkxFKFdFQkFTU0VNQkxZKSBidWlsZCBhZnRlciByMTkwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWYzNjVi
MjU0MzY0ODZlOWNkYzI2MzZhMDA3ZDFlM2IxY2UwOGEwMC4uMjI1YmRiODk5ZDdhNTNlMzU0Nzk5
MzhhNTg4MGZmYTViMjU5Yjk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTEw
LTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFVuaWZ5IGhhbmRs
aW5nIG9mIEphdmFTY3JpcHRDb3JlIHNjcmlwdHMgdGhhdCBhcmUgdXNlZCBpbiBXZWJDb3JlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAyNDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgdGhlIG5l
dyBKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUiB2YXJpYWJsZS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICAgICBObyBuZWVkIHRv
IGV4cG9ydCBvdGhlciB2YXJpYWJsZXMgbGlrZSBJbnNwZWN0b3JTY3JpcHRzIGFueW1vcmUuCisK
IDIwMTUtMTAtMTkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBIb3N0IEdyYXBoaWNzQ29udGV4dCdzIENUTSBpbnNpZGUgR3JhcGhpY3NDb250ZXh0
U3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwMzIzY2FiYzRkMzA0
ZDZjM2QzZWZlMTc3OTMwMGJhNWIyOTM4Y2ZiLi4zN2Y0NjMzNTk2YTg3MTY5NjczMWY3M2Y3Yjgx
YzM3MjJkYzBmOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC03MDAs
NiArNzAwLDggQEAgc2V0KEphdmFTY3JpcHRDb3JlX0xVVF9GSUxFUwogICAgIHJ1bnRpbWUvU3lt
Ym9sUHJvdG90eXBlLmNwcAogKQogCitzZXQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIgIiR7
SkFWQVNDUklQVENPUkVfRElSfS9TY3JpcHRzIikKKwogc2V0KEphdmFTY3JpcHRDb3JlX0xJQlJB
UklFUwogICAgIFdURiR7REVCVUdfU1VGRklYfQogICAgICR7SUNVX0kxOE5fTElCUkFSSUVTfQpA
QCAtOTM5LDcgKzk0MSw3IEBAIHNldChIQVNIX0xVVF9HRU5FUkFUT1IgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9L2NyZWF0ZV9oYXNoX3RhYmxlKQogbWFjcm8oR0VORVJBVEVfSEFTSF9MVVQg
X2lucHV0IF9vdXRwdXQpCiAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgICAgICBPVVRQVVQg
JHtfb3V0cHV0fQotICAgICAgICBERVBFTkRTICR7SEFTSF9MVVRfR0VORVJBVE9SfSAke19pbnB1
dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisgICAg
ICAgIERFUEVORFMgJHtIQVNIX0xVVF9HRU5FUkFUT1J9ICR7X2lucHV0fSAke0phdmFTY3JpcHRD
b3JlX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucwogICAgICAgICBDT01NQU5EICR7
UEVSTF9FWEVDVVRBQkxFfSAke0hBU0hfTFVUX0dFTkVSQVRPUn0gJHtfaW5wdXR9IC1pID4gJHtf
b3V0cHV0fQogICAgICAgICBWRVJCQVRJTSkKICAgICBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29y
ZV9IRUFERVJTICR7X291dHB1dH0pCkBAIC0xMDU2LDkgKzEwNTgsOSBAQCBlbmRpZiAoKQogCiBh
ZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vQ29tYmluZWREb21haW5zLmpzb24KLSAgICBNQUlOX0RFUEVOREVOQ1kgJHtK
YXZhU2NyaXB0Q29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWNvbWJpbmVkLWlu
c3BlY3Rvci1qc29uLnB5CisgICAgTUFJTl9ERVBFTkRFTkNZICR7SmF2YVNjcmlwdENvcmVfU0NS
SVBUU19ESVJ9L2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5CiAgICAgREVQRU5E
UyAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9ET01BSU5TfQotICAgIENPTU1BTkQgJHtQWVRI
T05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2dl
bmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICR7SmF2YVNjcmlwdENvcmVfSU5TUEVD
VE9SX0RPTUFJTlN9ID4gJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9Db21i
aW5lZERvbWFpbnMuanNvbgorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZh
U2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24u
cHkgJHtKYXZhU2NyaXB0Q29yZV9JTlNQRUNUT1JfRE9NQUlOU30gPiAke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9L0NvbWJpbmVkRG9tYWlucy5qc29uCiAgICAgVkVSQkFUSU0p
CiAKICMgSW5zcGVjdG9yIEJhY2tlbmQgRGlzcGF0Y2hlcnMsIEZyb250ZW5kIERpc3BhdGNoZXJz
LCBUeXBlIEJ1aWxkZXJzCkBAIC0xMTAxLDkgKzExMDMsOSBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
QlVJTFRJTlNfU09VUkNFUwogCiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICBPVVRQVVQgJHtERVJJ
VkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGlucy5jcHAgJHtERVJJVkVE
X1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGlucy5oCi0gICBNQUlOX0RFUEVO
REVOQ1kgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisg
ICBNQUlOX0RFUEVOREVOQ1kgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUt
anMtYnVpbHRpbnMKICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VT
fQotICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMgLS1pbnB1dC1kaXJlY3RvcnkgJHtDTUFLRV9DVVJS
RU5UX1NPVVJDRV9ESVJ9L2J1aWx0aW5zIC0tb3V0cHV0ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFT
Q1JJUFRDT1JFX0RJUn0vSlNDQnVpbHRpbnMuY3BwCisgICBDT01NQU5EICR7UFlUSE9OX0VYRUNV
VEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5z
IC0taW5wdXQtZGlyZWN0b3J5ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9idWlsdGlucyAt
LW91dHB1dCAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1aWx0aW5z
LmNwcAogICAgVkVSQkFUSU0pCiAKIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJDRVMK
QEAgLTExMjMsMTAgKzExMjUsMTAgQEAgbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSEVBREVS
UwogYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19KQVZB
U0NSSVBUQ09SRV9ESVJ9L0luamVjdGVkU2NyaXB0U291cmNlLmggJHtERVJJVkVEX1NPVVJDRVNf
SkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMKICAgICBNQUlO
X0RFUEVOREVOQ1kgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dFNvdXJjZS5qcwotICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9JTlNQRUNUT1JfU0NSSVBU
U19ESVJ9L3h4ZC5wbCAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0vanNt
aW4ucHkKKyAgICBERVBFTkRTICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L3h4ZC5wbCAk
e0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9qc21pbi5weQogICAgIENPTU1BTkQgZWNobyAi
Ly8jIHNvdXJjZVVSTD1fX1dlYkluc3BlY3RvckluamVjdGVkU2NyaXB0X18iID4gJHtERVJJVkVE
X1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMK
LSAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfSU5TUEVD
VE9SX1NDUklQVFNfRElSfS9qc21pbi5weSA8ICR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgPj4gJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQ
VENPUkVfRElSfS9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMKLSAgICBDT01NQU5EICR7UEVS
TF9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0veHhk
LnBsIEluamVjdGVkU2NyaXB0U291cmNlX2pzICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRTb3VyY2UubWluLmpzICR7REVSSVZFRF9TT1VSQ0VTX0pB
VkFTQ1JJUFRDT1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaAorICAgIENPTU1BTkQgJHtQ
WVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vanNtaW4ucHkg
PCAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpz
ID4+ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRT
b3VyY2UubWluLmpzCisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsIEluamVjdGVkU2NyaXB0U291cmNlX2pzICR7REVSSVZF
RF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRTb3VyY2UubWluLmpz
ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuaAogICAgIFZFUkJBVElNKQogCiBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9IRUFERVJT
ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMDQ2
NjhkZTViYzkwODM1Y2Y4YzAyNGZiNWRiODNkYTk0OTFlMzVmMy4uOTA5MTEyZDQwZjRkZmUyZGZk
ZWE0ZDRiYzc5MDhiMjliNDM5NjhmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTc4LDYgKzc4LDggQEAgYWxsIDogXAogUFlUSE9OID0gcHl0aG9uCiBQ
RVJMID0gcGVybAogCitKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUiA9ICQoSmF2YVNjcmlwdENv
cmUpL1NjcmlwdHMKKwogaWZlcSAoJChPUyksV2luZG93c19OVCkKICAgICBERUxFVEUgPSBjbWQg
Ly9DIGRlbAogZWxzZQpAQCAtODYsOSArODgsOSBAQCBlbmRpZgogIyAtLS0tLS0tLQogCiAuUEhP
Tlk6IEpTQ0J1aWx0aW5zCi1KU0NCdWlsdGluczogJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdGUt
anMtYnVpbHRpbnMgSlNDQnVpbHRpbnMuaCBKU0NCdWlsdGlucy5jcHAKLUpTQ0J1aWx0aW5zLmg6
ICQoSmF2YVNjcmlwdENvcmUpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zICQoSmF2YVNjcmlwdENvcmUp
L2J1aWx0aW5zIEpTQ0J1aWx0aW5zU291cmNlcwotCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3Jl
KS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0LWRpcmVjdG9yeSAkKEphdmFTY3JpcHRDb3Jl
KS9idWlsdGlucyAtLW91dHB1dCAkQAorSlNDQnVpbHRpbnM6ICQoSmF2YVNjcmlwdENvcmVfU0NS
SVBUU19ESVIpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIEpTQ0J1aWx0aW5zLmggSlNDQnVpbHRpbnMu
Y3BwCitKU0NCdWlsdGlucy5oOiAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9nZW5lcmF0
ZS1qcy1idWlsdGlucyAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucyBKU0NCdWlsdGluc1NvdXJj
ZXMKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtanMt
YnVpbHRpbnMgLS1pbnB1dC1kaXJlY3RvcnkgJChKYXZhU2NyaXB0Q29yZSkvYnVpbHRpbnMgLS1v
dXRwdXQgJEAKIAogSlNDQnVpbHRpbnMuY3BwOiBKU0NCdWlsdGlucy5oCiAKQEAgLTE4NSw4ICsx
ODcsOCBAQCBJTlNQRUNUT1JfR0VORVJBVE9SX1NDUklQVFMgPSBcCiAJJChKYXZhU2NyaXB0Q29y
ZSkvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5IFwKIAkk
KEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvci5weSBc
CiAJJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9tb2RlbHMucHkg
XAotCSQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVk
LWluc3BlY3Rvci1qc29uLnB5IFwKIAkkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3Ivc2NyaXB0
cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkgXAorCSQoSmF2YVNjcmlw
dENvcmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5IFwK
ICMKIAogYWxsIDogXApAQCAtMjAyLDE3ICsyMDQsMTcgQEAgYWxsIDogXAogRW5hYmxlZEluc3Bl
Y3RvckRvbWFpbnMgOiAkKEphdmFTY3JpcHRDb3JlKS9VcGRhdGVDb250ZW50cy5weSBmb3JjZQog
CSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlKS9VcGRhdGVDb250ZW50cy5weSAnJChJTlNQRUNU
T1JfRE9NQUlOUyknICRACiAKLUNvbWJpbmVkRG9tYWlucy5qc29uIDogaW5zcGVjdG9yL3Njcmlw
dHMvZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgJChJTlNQRUNUT1JfRE9NQUlO
UykgRW5hYmxlZEluc3BlY3RvckRvbWFpbnMKLQkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZSkv
aW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgJChJ
TlNQRUNUT1JfRE9NQUlOUykgPiAuL0NvbWJpbmVkRG9tYWlucy5qc29uCitDb21iaW5lZERvbWFp
bnMuanNvbiA6ICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWNvbWJpbmVk
LWluc3BlY3Rvci1qc29uLnB5ICQoSU5TUEVDVE9SX0RPTUFJTlMpIEVuYWJsZWRJbnNwZWN0b3JE
b21haW5zCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVyYXRl
LWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICQoSU5TUEVDVE9SX0RPTUFJTlMpID4gLi9Db21i
aW5lZERvbWFpbnMuanNvbgogCiAjIEluc3BlY3RvciBCYWNrZW5kIERpc3BhdGNoZXJzLCBGcm9u
dGVuZCBEaXNwYXRjaGVycywgVHlwZSBCdWlsZGVycwogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRj
aGVycy5oIDogQ29tYmluZWREb21haW5zLmpzb24gJChJTlNQRUNUT1JfR0VORVJBVE9SX1NDUklQ
VFMpCiAJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVy
YXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAtLWZyYW1ld29yayBKYXZhU2NyaXB0
Q29yZSAtLW91dHB1dERpciAuIC4vQ29tYmluZWREb21haW5zLmpzb24KIAotSW5qZWN0ZWRTY3Jp
cHRTb3VyY2UuaCA6IGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyAkKEphdmFTY3Jp
cHRDb3JlKS9pbnNwZWN0b3Ivc2NyaXB0cy9qc21pbi5weSAkKEphdmFTY3JpcHRDb3JlKS9pbnNw
ZWN0b3Ivc2NyaXB0cy94eGQucGwKK0luamVjdGVkU2NyaXB0U291cmNlLmggOiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvanNt
aW4ucHkgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikveHhkLnBsCiAJZWNobyAiLy8jIHNv
dXJjZVVSTD1fX1dlYkluc3BlY3RvckluamVjdGVkU2NyaXB0X18iID4gLi9JbmplY3RlZFNjcmlw
dFNvdXJjZS5taW4uanMKLQkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3Nj
cmlwdHMvanNtaW4ucHkgPCAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRTb3VyY2UuanMgPj4gLi9JbmplY3RlZFNjcmlwdFNvdXJjZS5taW4uanMKLQkkKFBFUkwpICQo
SmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbCBJbmplY3RlZFNjcmlwdFNv
dXJjZV9qcyAuL0luamVjdGVkU2NyaXB0U291cmNlLm1pbi5qcyBJbmplY3RlZFNjcmlwdFNvdXJj
ZS5oCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2pzbWluLnB5IDwg
JChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzID4+IC4v
SW5qZWN0ZWRTY3JpcHRTb3VyY2UubWluLmpzCisJJChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1ND
UklQVFNfRElSKS94eGQucGwgSW5qZWN0ZWRTY3JpcHRTb3VyY2VfanMgLi9JbmplY3RlZFNjcmlw
dFNvdXJjZS5taW4uanMgSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaAogCSQoREVMRVRFKSBJbmplY3Rl
ZFNjcmlwdFNvdXJjZS5taW4uanMKIAogIyBXZWIgUmVwbGF5IGlucHV0cyBnZW5lcmF0b3IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTgyNWU1MmNmYWE4OGVmOWFmZDM5NmFkNTli
YjgyZjU5MTRjMTY1YS4uMTMzOGU0ODI2OGZiMTg3ZDVmZDVhM2NmOGE3MGI5ZGVlOGFlZjVkMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk1NSw3ICs5NTUsNiBAQAogCQkyQURG
QTI2MzE4RUYzNTQwMDA0RjlGQ0MgLyogR0NMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBREZBMjYyMThFRjM1NDAwMDRGOUZDQyAvKiBH
Q0xvZ2dpbmcuY3BwICovOyB9OwogCQkyQUY3MzgyQzE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0
dXJlSURUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyQUY3MzgyQTE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5jcHAgKi87
IH07CiAJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQUY3MzgyQjE4QkJC
RjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTJERkI4QUZFMUJCMzIzQkQwMDkzRDIzNyAvKiBn
ZW5lcmF0ZS1qcy1idWlsdGlucyBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3MURBODBEMTg4MEQ3MUYwMEQxRjI5OSAvKiBnZW5lcmF0ZS1qcy1idWlsdGlu
cyAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzFE
ODQyRDE3Qzk4QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5NCAvKiBs
aWJ6LmR5bGliICovOyB9OwogCQk0MTM1OUNGMzBGREQ4OUFEMDAyMDYxODAgLyogRGF0ZUNvbnZl
cnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQy
MTIwMjI5MEFENDMxMEMwMEVENzlCNiAvKiBEYXRlQ29udmVyc2lvbi5oICovOyB9OwogCQk0MURF
QTEzMjFCOUYzMTYzMDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFQTEzMTFCOUYzMTU0MDA2RDY1REQgLyog
QnVpbHRpblV0aWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTEyMTQsNiArMTIxMywxMiBAQAogCQk5Nzg4MDE0MTE0NzFBRDkyMDA0MUIwMTYg
LyogSlNEYXRlTWF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTc4OEZDMjMxNDcxQUQwQzAwNjhDRTJEIC8qIEpTRGF0ZU1hdGguaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OTI4RkYzQjE4QUM0QUVD
MDBCOENGMTIgLyogSlNSZXBsYXlJbnB1dHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTkyOEZGMzkxOEFDNEFFQzAwQjhDRjEyIC8qIEpTUmVwbGF5
SW5wdXRzLmNwcCAqLzsgfTsKIAkJOTkyOEZGM0MxOEFDNEFFQzAwQjhDRjEyIC8qIEpTUmVwbGF5
SW5wdXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTI4RkYzQTE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBsYXlJbnB1dHMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5OTU5RTkyQjFCRDE3RkE0MDAx
QUE0MTMgLyogY3NzbWluLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTk1OUU5MjcxQkQxN0ZBMDAwMUFBNDEzIC8qIGNzc21pbi5weSAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5OTU5RTkyQzFCRDE3RkE0
MDAxQUE0MTMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU5RTkyODFCRDE3RkEwMDAxQUE0MTMgLyogZ2VuZXJh
dGUtanMtYnVpbHRpbnMgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTk1OUU5MkQxQkQxN0ZBNDAwMUFBNDEzIC8qIGpzbWluLnB5IGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1OUU5MjkxQkQxN0ZBMDAwMUFB
NDEzIC8qIGpzbWluLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTk5NTlFOTJFMUJEMTdGQTQwMDFBQTQxMyAvKiB4eGQucGwgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU5RTkyQTFCRDE3RkEwMDAxQUE0
MTMgLyogeHhkLnBsICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTk5NTlFOTMxMUJEMTgyNzIwMDFBQTQxMyAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNw
ZWN0b3ItanNvbi5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5NTlFOTJGMUJEMTgxRjYwMDFBQTQxMyAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0
b3ItanNvbi5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5OTU5RTkzMjFCRDE4Mjc5MDAxQUE0MTMgLyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVz
aGVldHMtYW5kLXNjcmlwdHMucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTU5RTkzMDFCRDE4MUY2MDAxQUE0MTMgLyogaW5saW5lLWFuZC1taW5pZnkt
c3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTk2MjMxRTkxOEQxODA0MjAwQzAzRkRBIC8qIEluc3BlY3Rv
ckJhY2tlbmRDb21tYW5kcy5qcyBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE1MzI0Mzk2MTg1NkE0NzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JCYWNrZW5kQ29t
bWFuZHMuanMgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTlDQzBCNjIxOEJFOTk0NjAwNkNFQkNDIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHNU
ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OUU0NUExRTE4QTFCMUU3MDAyNkQ4OEYgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0c1Rl
bXBsYXRlcy5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5OUNDMEI2MzE4QkU5OTUwMDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0
cy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTQ1
QTFEMThBMUIxRTcwMDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5ICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjk1LDcgKzEz
MDAsNiBAQAogCQlBNTMyNDM4QTE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmRE
aXNwYXRjaGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTUzMjQzODQxODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hl
cnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
NTMyNDM4QjE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzI0Mzg1MTg1
NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwICovOyB9OwogCQlB
NTMyNDM4QzE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTMyNDM4NjE4NTY4
MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTUzMjQzOTQxODU2OTcwOTAwMkVE
NjkyIC8qIGdlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5IGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUzMjQzOTExODU2OTZFNjAwMkVENjky
IC8qIGdlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5ICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5
MiAvKiBDb21iaW5lZERvbWFpbnMuanNvbiBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1MzI0Mzk1MTg1NkE0NzUwMDJFRDY5MiAvKiBDb21iaW5lZERvbWFp
bnMuanNvbiAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNTMzOUVDNjFCQjM5OUE2MDA1NEYwMDUgLyogSW5zcGVjdG9ySGVhcEFnZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTMzOUVDNTFCQjM5OTkw
MDA1NEYwMDUgLyogSW5zcGVjdG9ySGVhcEFnZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTUzMzlFQzcxQkIzOTlBOTAwNTRGMDA1IC8qIElu
c3BlY3RvckhlYXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNTMzOUVDNDFCQjM5OTkwMDA1NEYwMDUgLyogSW5zcGVjdG9ySGVhcEFnZW50
LmNwcCAqLzsgfTsKQEAgLTEzMzAsMTAgKzEzMzQsNiBAQAogCQlBNTg0MDMyMDE4QkZGQkUxMDA1
QTA4MTEgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1Q0VFRTEzMTg3RjNCQUQwMEU1NUM5OSAvKiBJbnNwZWN0b3JBZ2Vu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1
ODQwRTIwMTg3QjdCODYwMDg0M0IxMCAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg0MEUxRTE4N0I3Qjg2
MDA4NDNCMTAgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwICovOyB9OwogCQlBNTg0MEUyMTE4
N0I3Qjg2MDA4NDNCMTAgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODQwRTFGMTg3QjdCODYwMDg0M0IxMCAv
KiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCUE1ODQwRTI3MTg3Qzk4MUUwMDg0M0IxMCAvKiBjc3NtaW4ucHkg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg0MEUyNjE4
N0M5ODA3MDA4NDNCMTAgLyogY3NzbWluLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCUE1ODQwRTI5MTg3Q0E1RTYwMDg0M0IxMCAvKiBpbmxpbmUt
YW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODQwRTI4MTg3Q0E1QjgwMDg0M0IxMCAvKiBp
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNTg0MEUyQTE4N0NBNzU5MDA4
NDNCMTAgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTUxM0U1QzUxODVGOTJGMDAwN0U5NUFEIC8qIHh4ZC5wbCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNTg0MEUyQjE4N0NBNzVCMDA4NDNC
MTAgLyoganNtaW4ucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNTEzRTVDNDE4NUY5MkRDMDA3RTk1QUQgLyoganNtaW4ucHkgKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTU4QzAyNDIxOEU0QTQxQTAwMDMy
QkM1IC8qIEpTQ29udGV4dFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1OEMwMjQxMThFNEE0MUEwMDAzMkJDNSAvKiBKU0NvbnRleHRQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTU4RTM1OTExODYwREVDRjAwMUYyNEZFIC8qIEluamVjdGVkU2NyaXB0SG9zdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNThFMzU5MDE4NjBERUM3
MDAxRjI0RkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCAqLzsgfTsKIAkJQTU5M0NGN0MxODQw
MzYwMzAwQkZDRTI3IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1OTNDRjdBMTg0MDM2MDMwMEJG
Q0UyNyAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgKi87IH07CkBAIC0zMTE3LDYg
KzMxMTcsMTIgQEAKIAkJOTkyOEZGMzkxOEFDNEFFQzAwQjhDRjEyIC8qIEpTUmVwbGF5SW5wdXRz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVwbGF5SW5wdXRz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyOEZGM0ExOEFDNEFFQzAwQjhD
RjEyIC8qIEpTUmVwbGF5SW5wdXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTUmVwbGF5SW5wdXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MjhGRjNE
MThBQzRCMUMwMEI4Q0YxMiAvKiBKU0lucHV0cy5qc29uICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5qc29uOyBw
YXRoID0gSlNJbnB1dHMuanNvbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk1OUU5
MjcxQkQxN0ZBMDAwMUFBNDEzIC8qIGNzc21pbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5
dGhvbjsgcGF0aCA9IGNzc21pbi5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk1
OUU5MjgxQkQxN0ZBMDAwMUFBNDEzIC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5zICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gImdlbmVyYXRlLWpzLWJ1aWx0aW5zIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk1OUU5MjkxQkQxN0ZBMDAwMUFBNDEzIC8qIGpzbWlu
LnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0ganNtaW4ucHk7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NTlFOTJBMUJEMTdGQTAwMDFBQTQxMyAvKiB4eGQu
cGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBwYXRoID0geHhkLnBsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5OTU5RTkyRjFCRDE4MUY2MDAxQUE0MTMgLyogZ2VuZXJhdGUt
Y29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247
IHBhdGggPSAiZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5OTU5RTkzMDFCRDE4MUY2MDAxQUE0MTMgLyogaW5saW5lLWFu
ZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlw
dC5weXRob247IHBhdGggPSAiaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlw
dHMucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU0NUExRDE4QTFCMUU3MDAy
NkQ4OEYgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9IENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHk7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RTQ1QTFFMThBMUIxRTcwMDI2RDg4RiAvKiBDb2RlR2Vu
ZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0
aG9uOyBwYXRoID0gQ29kZUdlbmVyYXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNDVBMUYxOEExQjI1OTAwMjZEODhGIC8qIEVtcHR5
SW5wdXRDdXJzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW1wdHlJbnB1
dEN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE4NSw4ICszMTkxLDYg
QEAKIAkJQTUxM0U1QkMxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTUxM0U1QkQxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MTNFNUMzMTg1Rjky
QzkwMDdFOTVBRCAvKiBJbmplY3RlZFNjcmlwdFNvdXJjZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0
aCA9IEluamVjdGVkU2NyaXB0U291cmNlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBNTEzRTVDNDE4NUY5MkRDMDA3RTk1QUQgLyoganNtaW4ucHkgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNj
cmlwdC5weXRob247IHBhdGggPSBqc21pbi5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTUxM0U1QzUxODVGOTJGMDAwN0U5NUFEIC8qIHh4ZC5wbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnBlcmw7IHBhdGggPSB4eGQucGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1
MTNFNUM2MTg1Rjk0MzYwMDdFOTVBRCAvKiBJbmplY3RlZFNjcmlwdFNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdFNvdXJjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNTEzRTVDODE4NUY5NjI0MDA3RTk1QUQgLyogSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEluamVjdGVkU2NyaXB0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE1MTNFNUM5MTg1Rjk2MjQwMDdFOTVBRCAvKiBJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTk5LDcgKzMyMDMsNiBAQAogCQlBNTMyNDM4
NTE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE1MzI0Mzg2MTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90
b2NvbE9iamVjdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MzI0MzhEMTg1Njk2Q0EwMDJFRDY5MiAv
KiBwcm90b2NvbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZvbGRlcjsgcGF0aCA9IHByb3RvY29sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBNTMyNDM5MTE4NTY5NkU2MDAyRUQ2OTIgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9y
LWpzb24ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUt
Y29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTMyNDM5NTE4NTZBNDc1MDAyRUQ2OTIgLyogQ29tYmluZWREb21haW5zLmpzb24gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmpzb247IHBhdGggPSBDb21iaW5lZERvbWFpbnMuanNvbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTUzMjQzOTYxODU2QTQ3NTAwMkVENjkyIC8qIEluc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9
IEluc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTUzMzlFQzQxQkIzOTk5MDAwNTRGMDA1IC8qIEluc3BlY3RvckhlYXBBZ2VudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JIZWFwQWdlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzIzMiw4ICszMjM1LDYgQEAKIAkJQTU3
RDIzRjAxODkxQjVCNDAwMzFDN0ZBIC8qIENvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudFNlYXJjaFV0aWxpdGllcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTg0MEUxRTE4N0I3Qjg2MDA4NDNCMTAgLyogSW5q
ZWN0ZWRTY3JpcHRNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTg0MEUxRjE4N0I3Qjg2MDA4NDNCMTAgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU4NDBFMjYxODdDOTgwNzAwODQzQjEwIC8qIGNz
c21pbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGNzc21pbi5weTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU4NDBFMjgxODdDQTVCODAwODQzQjEwIC8q
IGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gImlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRz
LWFuZC1zY3JpcHRzLnB5Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4QzAyNDEx
OEU0QTQxQTAwMDMyQkM1IC8qIEpTQ29udGV4dFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDb250ZXh0UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNThFMzU5MDE4NjBERUM3MDAxRjI0RkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkU2NyaXB0SG9zdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE1OTNDRjdBMTg0MDM2MDMwMEJGQ0UyNyAvKiBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0zMzEyLDcgKzMzMTMsNiBAQAogCQlBNzEyMzZFNDExOTVGMzNDMDBCRDIxNzQgLyog
SklUT3Bjb2RlczMyXzY0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpJVE9wY29kZXMzMl82NC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MThG
NjFBMTE3NTRBMjEwMDI0NjVBNyAvKiBSZWdFeHBKaXRUYWJsZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVnRXhwSml0VGFibGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3MThGODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVhdGVfcmVnZXhfdGFibGVz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB0ZXh0LnNj
cmlwdC5weXRob247IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBjcmVhdGVfcmVnZXhfdGFibGVz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzFEQTgwRDE4ODBENzFGMDBEMUYyOTkg
LyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBh
dGggPSAiZ2VuZXJhdGUtanMtYnVpbHRpbnMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzIwMjhCNDE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1Rlc3RSdW5uZXJVdGlscy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjAyOEI1MTc5NzYwMUUwMDk4MDI4QyAv
KiBKU0NUZXN0UnVubmVyVXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNDVGVzdFJ1bm5lclV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjAy
OEI5MTc5NzYwM0QwMDk4MDI4QyAvKiBKU0Z1bmN0aW9uSW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0Z1bmN0aW9uSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzgxMCw5ICszODEwLDkgQEAKIAkJMDM0NzY4REZGRjM4QTUwNDExREI5
QzhCIC8qIFByb2R1Y3RzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3
b3JrICovLAogCQkJCTkzMkY1QkUxMDgyMkExQzcwMDczNjk3NSAvKiBqc2MgKi8sCiAJCQkJMEZG
OTIyQ0YxNEY0NkIxMzAwNDFBMjRFIC8qIEpTQ0xMSW50T2Zmc2V0c0V4dHJhY3RvciAqLywKLQkJ
CQk5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICov
LAogCQkJCTBGQ0VGQUI2MTgwNUQ2MTYwMDQ3MkNFNCAvKiBsaWJsbHZtRm9ySlNDLmR5bGliICov
LAogCQkJCTE0MTIxMTIwMEE0ODc5M0MwMDQ4MDI1NSAvKiBtaW5pZG9tICovLAogCQkJCTE0QkQ1
OUJGMEEzRThGOTAwMEJBRjU5QyAvKiB0ZXN0YXBpICovLApAQCAtMzgzMCw3ICszODMwLDYgQEAK
IAkJCQk4NjA0RjRGMjE0M0E2QzQ0MDBCMjk1RjUgLyogQ2hhbmdlTG9nICovLAogCQkJCUY2OTJB
ODU0MDI1NTU5N0QwMUZGNjBGNyAvKiBjcmVhdGVfaGFzaF90YWJsZSAqLywKIAkJCQlBNzE4Rjgy
MTExNzhFQjRCMDAyNDY1QTcgLyogY3JlYXRlX3JlZ2V4X3RhYmxlcyAqLywKLQkJCQlBNzFEQTgw
RDE4ODBENzFGMDBEMUYyOTkgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgKi8sCiAJCQkJNDVFMTJE
ODgwNkE0OUIwRjAwRTlERjg0IC8qIGpzYy5jcHAgKi8sCiAJCQkJRjY4RUJCOEMwMjU1RDRDNjAx
RkY2MEY3IC8qIGNvbmZpZy5oICovLAogCQkJCUY1QzI5MEU2MDI4NEY5OEUwMTg2MzVDQSAvKiBK
YXZhU2NyaXB0Q29yZVByZWZpeC5oICovLApAQCAtMzg0MiwxMiArMzg0MSw5IEBACiAJCQkJQTdE
ODAxOUYxODgwRDY2RTAwMjZDMzlCIC8qIGJ1aWx0aW5zICovLAogCQkJCTk2OUEwNzhGMEVEMUQz
QUUwMEYxRjY4MSAvKiBieXRlY29kZSAqLywKIAkJCQk3RTM5RDgxRDBFQzM4RUZBMDAzQUYxMUEg
LyogYnl0ZWNvbXBpbGVyICovLAotCQkJCTFDOTA1MTNFMEJBOUU4ODMwMDgxRTlEMCAvKiBDb25m
aWd1cmF0aW9ucyAqLywKIAkJCQkxNDgwREI5QTBEREMyMjMxMDAzQ0ZERjIgLyogZGVidWdnZXIg
Ki8sCi0JCQkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLywK
IAkJCQk4NkVDOURCMzEzMjhERjQ0MDAyQjJBRDcgLyogZGZnICovLAogCQkJCTBGRjQyNzJFMTU4
RUJDQ0UwMDRDQjlGRiAvKiBkaXNhc3NlbWJsZXIgKi8sCi0JCQkJMDg2N0Q2OUFGRTg0MDI4RkMw
MkFBQzA3IC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJMEZFQTA5RkMxNzA1MTM3RjAwQkI3MjJDIC8q
IGZ0bCAqLywKIAkJCQkxNDJFMzEyQTEzNEZGMEE2MDBBRkFEQjUgLyogaGVhcCAqLywKIAkJCQlB
NUJBMTVERjE4MjM0MDkyMDBBODJFNjkgLyogaW5zcGVjdG9yICovLApAQCAtMzg1NiwxNSArMzg1
MiwxOSBAQAogCQkJCTBGNDY4MDlDMTRCQTdGNEQwMEJGRTI3MiAvKiBsbGludCAqLywKIAkJCQkw
RkNFRkFBRDE4MDVDQTQ0MDA0NzJDRTQgLyogbGx2bSAqLywKIAkJCQk3RTM5RDgzNzBFQzNBMzg4
MDAzQUYxMUEgLyogcGFyc2VyICovLAotCQkJCTAzNDc2OERGRkYzOEE1MDQxMURCOUM4QiAvKiBQ
cm9kdWN0cyAqLywKIAkJCQk5NUFCODMxQTBEQTQyQzY5MDBCQzgzRjMgLyogcHJvZmlsZXIgKi8s
CiAJCQkJOTlFNDVBMEMxOEEwMUU5MzAwMjZEODhGIC8qIHJlcGxheSAqLywKLQkJCQk5MzJGQzND
MjA4MjRCQjcwMDA1QjNDNzUgLyogUmVzb3VyY2VzICovLAogCQkJCTdFRjZFMEJCMEVCN0ExRUMw
MDc5QUZBRiAvKiBydW50aW1lICovLAogCQkJCTE0MTIxMTAwMEE0ODc3MjYwMDQ4MDI1NSAvKiB0
ZXN0cyAqLywKIAkJCQk4NjAzQ0VGMDE0Qzc1M0VGMDBBRTU5RTMgLyogdG9vbHMgKi8sCiAJCQkJ
N0I5OEQxMzMxQjYwQ0QxRTAwMjNCMUE0IC8qIHdhc20gKi8sCiAJCQkJODZFQUM0OEMwRjkzRThC
OTAwOEVDOTQ4IC8qIHlhcnIgKi8sCisJCQkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERl
cml2ZWQgU291cmNlcyAqLywKKwkJCQk5MzJGQzNDMjA4MjRCQjcwMDA1QjNDNzUgLyogUmVzb3Vy
Y2VzICovLAorCQkJCTk5NTlFOTI1MUJEMTdGMUUwMDFBQTQxMyAvKiBTY3JpcHRzICovLAorCQkJ
CTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzICovLAorCQkJCTAzNDc2OERG
RkYzOEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0cyAqLywKKwkJCQkxQzkwNTEzRTBCQTlFODgzMDA4
MUU5RDAgLyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkpOwogCQkJbmFtZSA9IEphdmFTY3JpcHRD
b3JlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTU3MjksNiArNTcyOSwxOSBAQAog
CQkJcGF0aCA9IGJ5dGVjb2RlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
OTk1OUU5MjUxQkQxN0YxRTAwMUFBNDEzIC8qIFNjcmlwdHMgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTk5NTlFOTI4MUJEMTdGQTAwMDFBQTQxMyAvKiBn
ZW5lcmF0ZS1qcy1idWlsdGlucyAqLywKKwkJCQk5OTU5RTkyNzFCRDE3RkEwMDAxQUE0MTMgLyog
Y3NzbWluLnB5ICovLAorCQkJCTk5NTlFOTJGMUJEMTgxRjYwMDFBQTQxMyAvKiBnZW5lcmF0ZS1j
b21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAqLywKKwkJCQk5OTU5RTkzMDFCRDE4MUY2MDAxQUE0
MTMgLyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgKi8sCisJ
CQkJOTk1OUU5MjkxQkQxN0ZBMDAwMUFBNDEzIC8qIGpzbWluLnB5ICovLAorCQkJCTk5NTlFOTJB
MUJEMTdGQTAwMDFBQTQxMyAvKiB4eGQucGwgKi8sCisJCQkpOworCQkJcGF0aCA9IFNjcmlwdHM7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk5OUU0NUEwQzE4QTAxRTkzMDAy
NkQ4OEYgLyogcmVwbGF5ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTU3NzksMTIgKzU3OTIsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKIAkJCQlDNDcwM0NDMTE5Mjg0NEE0MDAxM0ZCRUEgLyogY29kZWdlbiAqLywKLQkJCQlB
NTg0MEUyNjE4N0M5ODA3MDA4NDNCMTAgLyogY3NzbWluLnB5ICovLAotCQkJCUE1MzI0MzkxMTg1
Njk2RTYwMDJFRDY5MiAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSAqLywK
IAkJCQlDNDcwM0NCRjE5Mjg0NDk2MDAxM0ZCRUEgLyogZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3Rv
Y29sLWJpbmRpbmdzLnB5ICovLAotCQkJCUE1ODQwRTI4MTg3Q0E1QjgwMDg0M0IxMCAvKiBpbmxp
bmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSAqLywKLQkJCQlBNTEzRTVD
NDE4NUY5MkRDMDA3RTk1QUQgLyoganNtaW4ucHkgKi8sCi0JCQkJQTUxM0U1QzUxODVGOTJGMDAw
N0U5NUFEIC8qIHh4ZC5wbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gc2NyaXB0czsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MDU2LDYgKzYwNjQsNyBAQAogCQkJCTBGMEI4M0I5MTRC
Q0Y5NUYwMDg4NUI0RiAvKiBDYWxsUmV0dXJuT2Zmc2V0VG9CeXRlY29kZU9mZnNldC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYzQjdFMkIxOUExMUI4MDAwRDlCQzU2IC8qIENhbGxWYXJpYW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0MjE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxw
ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjFDM0REQTFCQkNFMDlFMDBFNTIzRTQgLyogQ2Vs
bFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzZBQUFFNTBFMUY0MjY1MDBBRDg3RDggLyog
Q2xhc3NJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAyNjFBQTkwOTU2MDBEMzNCMzMg
LyogQ2xvbmVkQXJndW1lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDc5NzBFRDFEM0FF
MDBGMUY2ODEgLyogQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTYxMDIsNyArNjExMSw3
IEBACiAJCQkJQzRGNEI2RjQxQTA1Qzk0NDAwNUNBQjc2IC8qIGNwcF9nZW5lcmF0b3IucHkgaW4g
SGVhZGVycyAqLywKIAkJCQlDNEY0QjZGMzFBMDVDOTQ0MDA1Q0FCNzYgLyogY3BwX2dlbmVyYXRv
cl90ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLywKIAkJCQk1REU2RTVCMzBFMTcyOEVDMDAxODA0
MDcgLyogY3JlYXRlX2hhc2hfdGFibGUgaW4gSGVhZGVycyAqLywKLQkJCQlBNTg0MEUyNzE4N0M5
ODFFMDA4NDNCMTAgLyogY3NzbWluLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJOTk1OUU5MkIxQkQx
N0ZBNDAwMUFBNDEzIC8qIGNzc21pbi5weSBpbiBIZWFkZXJzICovLAogCQkJCTJBMTExMjQ2MTky
RkNFNzkwMDVFRTE4RCAvKiBDdXN0b21HZXR0ZXJTZXR0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNDI2QTRCMTQ2MENENkUwMDEzMUY4RiAvKiBEYXRhRm9ybWF0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjJCNjZERjE3QjZCNUFCMDBBN0FFM0YgLyogRGF0YVZpZXcuaCBpbiBIZWFkZXJzICov
LApAQCAtNjE4NywxMCArNjE5Niw4IEBACiAJCQkJQTc4QTk3NzUxNzk3MzhCODAwOURGNzQ0IC8q
IERGR0ZhaWxlZEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRkYzQzAxNzk4Njg5
NDAwMDJGNDYyIC8qIERGR0ZpbHRyYXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
OEE5Nzc3MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTdCODMyOUJGMUJCMjFGRTMwMDY0OUE2RSAvKiBXQVNNRnVuY3Rpb25MTFZNSVJHZW5lcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzE2MTUxQzVENEYwMENEODkxMCAvKiBERkdG
aXh1cFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlEMzM5NzE3RkZDNEU2MDA3M0MyQkMg
LyogREZHRmx1c2hlZEF0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMyQkQxMTFCQjM0RjE5MDA5
M0E1N0YgLyogSGVhcEhlbHBlclBvb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDg5Q0Y4MTdB
MEI4Q0MwMDc3M0FEOCAvKiBERkdGbHVzaEZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
REQ4MTUxQUIzRDhCRTAwQkJCOEU4IC8qIERGR0ZvckFsbEtpbGxzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjY5Q0M4OTE5M0FDNjBBMDA0NTc1OUUgLyogREZHRnJvemVuVmFsdWUuaCBpbiBIZWFk
ZXJzICovLApAQCAtNjI1OSw3ICs2MjY2LDYgQEAKIAkJCQkwRkIxNzY2MzE5NkI4RjlFMDA5MTA1
MkEgLyogREZHUHVyZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjNBMUJGQTFBOUVDQjdE
MDAwREUwMUEgLyogREZHUHV0U3RhY2tTaW5raW5nUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2RUM5REQxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCBpbiBIZWFkZXJz
ICovLAotCQkJCURFQTdFMjQ1MUJCQzY3N0YwMEQ3ODQ0MCAvKiBKU1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJGQ0NGQzE4QTYwMDcwMDAxQTI3RjggLyog
REZHU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdBNDI0MzE3QTBCQkZEMDBBOERC
ODEgLyogREZHU2FmZVRvRXhlY3V0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MTAxN0YxNzlE
QUY4MDAwMkVCOEJBIC8qIERGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKQEAgLTYyNzgsNyArNjI4NCw2IEBACiAJCQkJMEY2Mzk0NzgxNURDRTM0
QjAwNkE1OTdDIC8qIERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNTBBRjNDMTkzRThCMzkwMDY3NEVFOCAvKiBERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzkwODU2MTlBMjkwQjIwMEY2MzEwQyAvKiBERkdTdHJ1
Y3R1cmVSZWdpc3RyYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZCNEZCNzUxQkM4
NDMxNDAwMjVDQTVBIC8qIEZUTExhenlTbG93UGF0aENhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMkZDQ0ZGMThBNjAwNzAwMDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkMwOTdBMjE0NkIyOENDMDBDRjI0NDIgLyogREZHVGh1bmtzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkQ4QTMyODE3RDUxRjU3MDBDQTJDNDAgLyogREZHVGllclVwQ2hlY2tJbmpl
Y3Rpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC02MzU5LDYgKzYzNjQsOCBAQAogCQkJCTBG
RDEyMDMwMUE4QUVEMTIwMDBGNTI4MCAvKiBGVExKU0NhbGxCYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkQxMjAzNDFBOEM4NUJEMDAwRjUyODAgLyogRlRMSlNDYWxsVmFyYXJncy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjI3NzREQUIxQjhENEIxOTAwMDZGMDVBIC8qIEZUTEpTVGFpbENhbGwu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGQjRGQjc0MUJDODQzMTQwMDI1Q0E1QSAvKiBGVExMYXp5
U2xvd1BhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQjRGQjc1MUJDODQzMTQwMDI1Q0E1QSAv
KiBGVExMYXp5U2xvd1BhdGhDYWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhGMkI5NjE3MkUw
NEEzMDA3REJEQTUgLyogRlRMTGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRUZBRTAxODA3
MzhDMDAwNDcyQ0U0IC8qIEZUTExvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEx
MDE3MDUxM0RCMDBCQjcyMkMgLyogRlRMTG93ZXJERkdUb0xMVk0uaCBpbiBIZWFkZXJzICovLApA
QCAtNjQwMSw5ICs2NDA4LDkgQEAKIAkJCQkyQUFCQ0RFNzE4RUYyOTQyMDAwMDIwOTYgLyogR0NM
b2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTRFOEVCMDE4QkZGQkJCMDA1NTZEMjggLyog
R0NTZWdtZW50ZWRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU0RThFQjExOEJGRkJCRTAw
NTU2RDI4IC8qIEdDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
NTMyNDM5NDE4NTY5NzA5MDAyRUQ2OTIgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpz
b24ucHkgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5RTkzMTFCRDE4MjcyMDAxQUE0MTMgLyogZ2Vu
ZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDNDcw
M0NDMDE5Mjg0NDk2MDAxM0ZCRUEgLyogZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRp
bmdzLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJMkRGQjhBRkUxQkIzMjNCRDAwOTNEMjM3IC8qIGdl
bmVyYXRlLWpzLWJ1aWx0aW5zIGluIEhlYWRlcnMgKi8sCisJCQkJOTk1OUU5MkMxQkQxN0ZBNDAw
MUFBNDEzIC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcw
RUMxOUY1QjNFQTAwOThGNUVDIC8qIGdlbmVyYXRlX2NwcF9hbHRlcm5hdGVfYmFja2VuZF9kaXNw
YXRjaGVyX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1RUY5QjE0MUExRDQzRjYwMDcw
MkU5MCAvKiBnZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weSBpbiBIZWFk
ZXJzICovLAogCQkJCUE1RUY5QjE1MUExRDQzRkEwMDcwMkU5MCAvKiBnZW5lcmF0ZV9jcHBfYmFj
a2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCkBAIC02NDQw
LDYgKzY0NDcsNyBAQAogCQkJCTE0MkUzMTM4MTM0RkYwQTYwMEFGQURCNSAvKiBIYW5kbGVTdGFj
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3ODI5N0IxMzc5RThBODAwQTdDMkEzIC8qIEhhbmRs
ZVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEJBN0E5ODEzQUFERkY4MDA1QjdDMkMgLyog
SGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMkJEMTExQkIzNEYxOTAwOTNBNTdGIC8qIEhl
YXBIZWxwZXJQb29sLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkRBNzc4MzE4RTI1OTk5MDA2NkZD
QjYgLyogSGVhcElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBRDg5MzJCMTdFMzg2OEYw
MDY2ODI3NiAvKiBIZWFwSXRlcmF0aW9uU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MzM5
RUM5MUJCNEI0NjAwMDU0RjAwNSAvKiBIZWFwT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
NjQ2OCw3ICs2NDc2LDcgQEAKIAkJCQlBNTEzRTVDQjE4NUY5NjI0MDA3RTk1QUQgLyogSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUyMTE4N0I3Qjg2MDA4
NDNCMTAgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNF
NUM3MTg1Rjk0NDYwMDdFOTVBRCAvKiBJbmplY3RlZFNjcmlwdFNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQTU4NDBFMjkxODdDQTVFNjAwODQzQjEwIC8qIGlubGluZS1hbmQtbWluaWZ5LXN0
eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJOTk1OUU5MzIxQkQx
ODI3OTAwMUFBNDEzIC8qIGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRz
LnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ4QTdCRjAxQjgyOTc1QTAwMkQ5MTU3IC8qIElubGlu
ZUNhbGxGcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NTYxN0YwQjcxQzAwQUJCMjE3
IC8qIElubGluZUNhbGxGcmFtZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlFNDVBMjcxOEEx
QjI1OTAwMjZEODhGIC8qIElucHV0Q3Vyc29yLmggaW4gSGVhZGVycyAqLywKQEAgLTY1ODAsNyAr
NjU4OCw2IEBACiAJCQkJODZFM0M2MTQxNjdCQUJENzAwNkQ3NjBBIC8qIEpTRXhwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBN0I0QUNBRjE0ODRDOUNFMDBCMzhBMzYgLyogSlNFeHBvcnRNYWNy
b3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkVGMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Zs
b2F0MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTM5MTdFN0IxQjc5MDZGQTAwMEVCRDMz
IC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjJCNjZGMDE3QjZCNUFCMDBBN0FFM0YgLyogSlNGbG9hdDY0QXJyYXkuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMThDNDFGMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0Z1bmN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzIwMjhCQTE3OTc2MDNEMDA5ODAyOEMgLyogSlNGdW5j
dGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtNjU4OSw2ICs2NTk2LDcgQEAKIAkJCQkw
RjJCNjZGMzE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3RvcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkY0MTdCNkI1QUIwMEE3QUUz
RiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMkI2NkY1MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTM5MTdFN0IxQjc5MDZGQTAwMEVCRDMzIC8qIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjJCNjZGNjE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTdFMDdBQTFCOEZDRkI5MDA4
NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMThDNDIxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0dsb2JhbE9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02NjIxLDcgKzY2MjksNyBAQAogCQkJCTJBNEJCN0YzMThBNDExNzkwMDhBMEZDRCAv
KiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzAwODc0MjE3
Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjk2MTgy
RDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTg0
MEUyQjE4N0NBNzVCMDA4NDNCMTAgLyoganNtaW4ucHkgaW4gSGVhZGVycyAqLywKKwkJCQk5OTU5
RTkyRDFCRDE3RkE0MDAxQUE0MTMgLyoganNtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlFM0Qy
MzlDOTFCODI5QzFDMDBCQkVGNjcgLyogSlNNb2R1bGVFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTMxOENCQzExQjhBRUY1MTAwQTI5MjlEIC8qIEpTTW9kdWxlTmFtZXNwYWNlT2Jq
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzlEQTRBNzFCN0U4QjdDMDA4NEYzM0EgLyogSlNN
b2R1bGVSZWNvcmQuaCBpbiBIZWFkZXJzICovLApAQCAtNjYzNSw3ICs2NjQzLDYgQEAKIAkJCQk3
QzE4NEUxQjE3QkVEQkQzMDA3Q0I2M0EgLyogSlNQcm9taXNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QzE4NEUyMzE3QkVFMjQwMDA3Q0I2M0EgLyogSlNQcm9taXNlQ29uc3RydWN0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdDMDA4Q0RCMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZl
cnJlZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZCNEZCNzQxQkM4NDMxNDAwMjVDQTVBIC8qIEZU
TExhenlTbG93UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MxODRFMUYxN0JFRTIyRTAwN0NC
NjNBIC8qIEpTUHJvbWlzZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkEwNUFCRDYx
OTYxREYyNDAwMzQxNzUwIC8qIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTNFRjg4NzUxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNjY2Myw2ICs2NjcwLDcgQEAKIAkJCQkwRjJCNjZGQjE3
QjZCNUFCMDBBN0FFM0YgLyogSlNUeXBlZEFycmF5Q29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjJCNjZGRDE3QjZCNUFCMDBBN0FFM0YgLyogSlNUeXBlZEFycmF5UHJvdG90eXBl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RkYxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVHlw
ZWRBcnJheXMuaCBpbiBIZWFkZXJzICovLAorCQkJCURFQTdFMjQ1MUJCQzY3N0YwMEQ3ODQ0MCAv
KiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTA3RDI5
RTBFODcxRTVFMDBEN0Q4OTYgLyogSlNUeXBlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY3MDIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMkI2NzAzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1VpbnQzMkFycmF5LmggaW4gSGVhZGVy
cyAqLywKQEAgLTY5NDIsNyArNjk1MCw2IEBACiAJCQkJMTQxNDJFNTExQjc5NkVDRTAwRjRCRjRC
IC8qIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJF
ODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51c2VkUG9pbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5NjNCMzgxM0ZDNkZFOTAwMDJEOUIyIC8qIFZhbHVlUHJvZmlsZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEYxQzNEREExQkJDRTA5RTAwRTUyM0U0IC8qIENlbGxTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0MjZBNDgxNDYwQ0JCMzAwMTMxRjhGIC8qIFZhbHVlUmVjb3ZlcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTc5RUUwQzAwMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVu
dmlyb25tZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZDNzM1MTFBQzlGOTlGMDBCRTE2ODIg
LyogVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaCBpbiBIZWFkZXJzICovLApAQCAtNjk1NCw2ICs2
OTYxLDcgQEAKIAkJCQk3QjAyNDc1NTFCODY4MkREMDA1NDI0NDAgLyogV0FTTUNvbnN0YW50cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0JDNTQ3RDMxQjY5NTlBMTAwOTU5QjU4IC8qIFdBU01Gb3Jt
YXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCMkUwMTBFMUI5N0FBNjkwMEVGNUQ1QyAvKiBXQVNN
RnVuY3Rpb25Db21waWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I4MzI5QkYxQkIyMUZFMzAw
NjQ5QTZFIC8qIFdBU01GdW5jdGlvbkxMVk1JUkdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0IwMjQ3NTcxQjg2ODJFNDAwNTQyNDQwIC8qIFdBU01GdW5jdGlvblBhcnNlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0IwMjQ3NTkxQjg2OEVCNzAwNTQyNDQwIC8qIFdBU01GdW5jdGlvblN5
bnRheENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCMzlGNzZFMUI2MkRFMzIwMDM2MEZC
NCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTY5ODEsNyArNjk4OSw3
IEBACiAJCQkJQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzgxNTBBMTQwNDNCRjUwMENGQTYwMyAvKiBXcml0ZUJh
cnJpZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5Njg4Q0IxNjBFRDEyQjRFMDAxRDY0
OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTg0MEUyQTE4N0NBNzU5
MDA4NDNCMTAgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCisJCQkJOTk1OUU5MkUxQkQxN0ZBNDAw
MUFBNDEzIC8qIHh4ZC5wbCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJEQzk5NDUwMEVG
N0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NTEyREJBMzM3MDBBOUZF
N0IgLyogWWFyckludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NzEyREJB
MzM3MDBBOUZFN0IgLyogWWFyckpJVC5oIGluIEhlYWRlcnMgKi8sCkBAIC03NzM0LDYgKzc3NDIs
NyBAQAogCQkJCTBGRDEyMDJGMUE4QUVEMTIwMDBGNTI4MCAvKiBGVExKU0NhbGxCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRDEyMDMzMUE4Qzg1QkQwMDBGNTI4MCAvKiBGVExKU0NhbGxW
YXJhcmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTYyNzc0REFBMUI4RDRCMTkwMDA2RjA1QSAv
KiBGVExKU1RhaWxDYWxsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQjRGQjczMUJDODQzMTQw
MDI1Q0E1QSAvKiBGVExMYXp5U2xvd1BhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4RjJC
OTUxNzJFMDRBMDAwN0RCREE1IC8qIEZUTExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZD
RUZBREYxODA3MzhDMDAwNDcyQ0U0IC8qIEZUTExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUEwQTBGMTcwNTEzREIwMEJCNzIyQyAvKiBGVExMb3dlckRGR1RvTExWTS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTc3NjcsNiArNzc3Niw3IEBACiAJCQkJMTQyRTMxMzUxMzRGRjBBNjAw
QUZBREI1IC8qIEhhbmRsZVNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDJFMzEzNzEzNEZG
MEE2MDBBRkFEQjUgLyogSGFuZGxlU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRCQTdB
OTcxM0FBREZGODAwNUI3QzJDIC8qIEhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYzMkJE
MTAxQkIzNEYxOTAwOTNBNTdGIC8qIEhlYXBIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUMyNEQzMUUyMTYxQ0Q2OTUwMDJBQTREQiAvKiBIZWFwU3RhdGlzdGljcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDMkU1MjZCRDE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZFN0JBNjBGMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZp
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03OTI0LDYgKzc5MzQsNyBAQAogCQkJCTBGMkI2NkZB
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYyQjY2RkMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVHlwZWRBcnJheVByb3Rv
dHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyQjY2RkUxN0I2QjVBQjAwQTdBRTNGIC8q
IEpTVHlwZWRBcnJheXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREVBN0UyNDQxQkJDNjc3MjAw
RDc4NDQwIC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODZFM0M2MUExNjdCQUJFRTAwNkQ3NjBBIC8qIEpTVmFsdWUubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxNEJENUEzMjBBM0U5MUY2MDBCQUY1OUMgLyogSlNWYWx1ZVJlZi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NkUzQzYxQzE2N0JBQkVFMDA2RDc2MEEgLyogSlNWaXJ0dWFsTWFjaGluZS5t
bSBpbiBTb3VyY2VzICovLApAQCAtNzk5Nyw3ICs4MDA4LDYgQEAKIAkJCQkwRjk4MjA2MDE2QkZF
MzgxMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk1NzQyRjY1MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk1Q0Q0NTc2MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCURFQTdFMjQ0MUJCQzY3NzIwMEQ3ODQ0MCAvKiBKU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk1QUI4MzU2MERBNDNDMzAwMEJD
ODNGMyAvKiBQcm9maWxlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlBRDE2NkFE
MzVDMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkY3MjlBRTE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC04MDc0LDcgKzgwODQsNiBAQAogCQkJCTE0NDY5REVCMTA3RUM3RTcwMDY1MDQ0
NiAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDMEVDNjFB
QTBEN0RBMDBCNkFBRkEgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQ0NjlERUMxMDdFQzdFNzAwNjUwNDQ2IC8qIFN0cmluZ09iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkwRkI0RkI3MzFCQzg0MzE0MDAyNUNBNUEgLyogRlRMTGF6eVNsb3dQ
YXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REVEMTA3RUM3RTcwMDY1MDQ0NiAvKiBT
dHJpbmdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzNUYyNEQxMkU2NzY1QjAw
MkI1NTUzIC8qIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNERTNCNDMwRTZDODMyRDAwMTQ1M0E3IC8qIFN0cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTgxMDYsNyArODExNSw2IEBACiAJCQkJMEZGNDI3NDAxNThFQkU4QjAwNENCOUZGIC8qIHVk
aXM4Nl9kZWNvZGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQzMTU4RUJFOTEwMDRDQjlG
RiAvKiB1ZGlzODZfaW5wdXQuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzREMTU4RUJGRTYw
MDRDQjlGRiAvKiB1ZGlzODZfaXRhYl9ob2xkZXIuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMzJC
RDEwMUJCMzRGMTkwMDkzQTU3RiAvKiBIZWFwSGVscGVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkY0Mjc0NTE1OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2X3N5bi1hdHQuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRjQyNzQ2MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfc3luLWludGVs
LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0NzE1OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2
X3N5bi5jIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
UGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XaW4uY21h
a2UKaW5kZXggNmE3YWYwZGM2NmViN2E3MWJkM2Y5MWU3MzU0MWNjNDJjODEwMWI2NS4uMDk3MWQ0
NDRiZjczM2UxMTlkNTVmYTIzMDYxY2U0MjVkNmU3ZDUzYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMjksMTEgKzI5LDE2IEBAIGZpbGUoQ09QWQogKQogCiBm
aWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRl
cnMvSmF2YVNjcmlwdENvcmUpCisKK2ZpbGUoR0xPQiBfSmF2YVNjcmlwdENvcmVfU2NyaXB0cyAi
JHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vKiIpCitmb3JlYWNoIChfc2NyaXB0ICR7X0ph
dmFTY3JpcHRDb3JlX1NjcmlwdHN9KQorICAgIGZpbGUoQ09QWSAke19zY3JpcHR9IERFU1RJTkFU
SU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cykKK2VuZGZvcmVhY2goKQorCiBzZXQoSmF2YVNjcmlwdENvcmVfUE9TVF9CVUlM
RF9DT01NQU5EICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlL3Bvc3RCdWlsZC5jbWQiKQogZmlsZShXUklURSAiJHtKYXZhU2NyaXB0Q29yZV9QT1NUX0JV
SUxEX0NPTU1BTkR9IiAiQHhjb3B5IC95IC9kIC9mIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9K
YXZhU2NyaXB0Q29yZS8qLmhcIiBcIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hl
YWRlcnMvSmF2YVNjcmlwdENvcmVcIiA+bnVsIDI+bnVsXG4iKQogZmlsZShBUFBFTkQgIiR7SmF2
YVNjcmlwdENvcmVfUE9TVF9CVUlMRF9DT01NQU5EfSIgIkB4Y29weSAveSAvZCAvZiBcIiR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yLyouaFwiIFwiJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZVwiID5udWwg
Mj5udWxcbiIpCi1maWxlKEFQUEVORCAiJHtKYXZhU2NyaXB0Q29yZV9QT1NUX0JVSUxEX0NPTU1B
TkR9IiAiQHhjb3B5IC95IC9kIC9mIC9zIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy8qLipcIiBcIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmVcIiA+bnVsIDI+bnVsXG4iKQotZmlsZShB
UFBFTkQgIiR7SmF2YVNjcmlwdENvcmVfUE9TVF9CVUlMRF9DT01NQU5EfSIgIkB4Y29weSAveSAv
ZCAvZiAvcyBcIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUt
anMtYnVpbHRpbnNcIiBcIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMv
SmF2YVNjcmlwdENvcmVcIiA+bnVsIDI+bnVsXG4iKQorZmlsZShBUFBFTkQgIiR7SmF2YVNjcmlw
dENvcmVfUE9TVF9CVUlMRF9DT01NQU5EfSIgIkB4Y29weSAveSAvZCAvZiBcIiR7SmF2YVNjcmlw
dENvcmVfU0NSSVBUU19ESVJ9LyouKlwiIFwiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJk
aW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzXCIgPm51bCAyPm51bFxuIikKIGZvcmVh
Y2ggKF9kaXJlY3RvcnkgJHtKYXZhU2NyaXB0Q29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNU
T1JJRVN9KQogICAgIGZpbGUoQVBQRU5EICIke0phdmFTY3JpcHRDb3JlX1BPU1RfQlVJTERfQ09N
TUFORH0iICJAeGNvcHkgL3kgL2QgL2YgXCIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vJHtfZGlyZWN0
b3J5fS8qLmhcIiBcIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2
YVNjcmlwdENvcmVcIiA+bnVsIDI+bnVsXG4iKQogZW5kZm9yZWFjaCAoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvY3NzbWluLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvY3NzbWluLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwNjQwZWIyODRiYWRkNGY1Yzgy
ZTcxYTNmY2FjNmQ4YTcxZTMwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy9jc3NtaW4ucHkKQEAgLTAsMCArMSw0NCBAQAorIyEvdXNyL2Jpbi9weXRo
b24KKworIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHJlCisK
K2RlZiBjc3NtaW5pZnkoY3NzKToKKyAgICBydWxlcyA9ICgKKyAgICAgICAgKHIiXC9cKi4qP1wq
XC8iLCAiIiksICAgICAgICAgICMgZGVsZXRlIGNvbW1lbnRzCisgICAgICAgIChyIlxuIiwgIiIp
LCAgICAgICAgICAgICAgICAgICAjIGRlbGV0ZSBuZXcgbGluZXMKKyAgICAgICAgKHIiXHMrIiwg
IiAiKSwgICAgICAgICAgICAgICAgICMgY2hhbmdlIG11bHRpcGxlIHNwYWNlcyB0byBvbmUgc3Bh
Y2UKKyAgICAgICAgKHIiXHM/KFs7Ont9LCs+XSlccz8iLCByIlwxIiksICMgZGVsZXRlIHNwYWNl
IHdoZXJlIGl0IGlzIG5vdCBuZWVkZWQKKyAgICAgICAgKHIiO30iLCAifSIpICAgICAgICAgICAg
ICAgICAgICMgY2hhbmdlICc7fScgdG8gJ30nIGJlY2F1c2UgdGhlIHNlbWljb2xvbiBpcyBub3Qg
bmVlZGVkCisgICAgKQorCisgICAgY3NzID0gY3NzLnJlcGxhY2UoIlxyXG4iLCAiXG4iKQorICAg
IGZvciBydWxlIGluIHJ1bGVzOgorICAgICAgICBjc3MgPSByZS5jb21waWxlKHJ1bGVbMF0sIHJl
Lk1VTFRJTElORSB8IHJlLlVOSUNPREUgfCByZS5ET1RBTEwpLnN1YihydWxlWzFdLCBjc3MpCisg
ICAgcmV0dXJuIGNzcworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIGltcG9ydCBz
eXMKKyAgICBzeXMuc3Rkb3V0LndyaXRlKGNzc21pbmlmeShzeXMuc3RkaW4ucmVhZCgpKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVk
LWluc3BlY3Rvci1qc29uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJh
dGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTM2NjAzMThkZGNlM2Jh
NzhjYmIwNjk2YTIxNzU4MTk2MGY5MTAxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5CkBA
IC0wLDAgKzEsNjkgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisKKyMgQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBnbG9iCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitp
bXBvcnQgc3lzCisKK2lmIGxlbihzeXMuYXJndikgPCAyOgorICAgIHByaW50KCJ1c2FnZTogJXMg
W2pzb24gZmlsZXMgb3IgZGlyZWN0b3J5IG9mIGpzb24gZmlsZXMgLi4uXSIgJSBvcy5wYXRoLmJh
c2VuYW1lKHN5cy5hcmd2WzBdKSkKKyAgICBzeXMuZXhpdCgxKQorCitmaWxlcyA9IFtdCitmb3Ig
YXJnIGluIHN5cy5hcmd2WzE6XToKKyAgICBpZiBub3Qgb3MuYWNjZXNzKGFyZywgb3MuRl9PSyk6
CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRmlsZSBcIiVzXCIgbm90IGZvdW5kIiAlIGFyZykK
KyAgICBlbGlmIG9zLnBhdGguaXNkaXIoYXJnKToKKyAgICAgICAgZmlsZXMuZXh0ZW5kKGdsb2Iu
Z2xvYihvcy5wYXRoLmpvaW4oYXJnLCAiKi5qc29uIikpKQorICAgIGVsc2U6CisgICAgICAgIGZp
bGVzLmFwcGVuZChhcmcpCitmaWxlcy5zb3J0KCkKKworIyBUbyBrZWVwIGFzIGNsb3NlIHRvIHRo
ZSBvcmlnaW5hbCBKU09OIGZvcm1hdHRpbmcgYXMgcG9zc2libGUsIGp1c3QKKyMgZHVtcCBlYWNo
IEpTT04gaW5wdXQgZmlsZSB1bm1vZGlmaWVkIGludG8gYW4gYXJyYXkgb2YgImRvbWFpbnMiLgor
IyBWYWxpZGF0ZSBlYWNoIGZpbGUgaXMgdmFsaWQgSlNPTiBhbmQgdGhhdCB0aGVyZSBpcyBhICJk
b21haW4iIGtleS4KKworZmlyc3QgPSBUcnVlCitwcmludCgie1wiZG9tYWluc1wiOlsiKQorZm9y
IGZpbGUgaW4gZmlsZXM6CisgICAgaWYgZmlyc3Q6CisgICAgICAgIGZpcnN0ID0gRmFsc2UKKyAg
ICBlbHNlOgorICAgICAgICBwcmludCgiLCIpCisKKyAgICBzdHJpbmcgPSBvcGVuKGZpbGUpLnJl
YWQoKQorCisgICAgdHJ5OgorICAgICAgICBkaWN0aW9uYXJ5ID0ganNvbi5sb2FkcyhzdHJpbmcp
CisgICAgICAgIGlmIG5vdCAiZG9tYWluIiBpbiBkaWN0aW9uYXJ5OgorICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCJGaWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWlucyBhIFwiZG9tYWluXCIg
a2V5LiIgJSBmaWxlKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICBzeXMuc3RkZXJy
LndyaXRlKCJGaWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWluIHZhbGlkIEpTT046XG4iICUgZmls
ZSkKKyAgICAgICAgcmFpc2UKKworICAgIHByaW50KHN0cmluZy5yc3RyaXAoKSkKK3ByaW50KCJd
fSIpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRl
LWpzLWJ1aWx0aW5zIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMt
YnVpbHRpbnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZmNDE4NzNkYTJiNjVhNzcxMTRjZjVkNDFlODdhNGMwZDMw
NjM3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zCkBAIC0wLDAgKzEsMzQzIEBACisjIS91c3IvYmluL3B5dGhvbgor
IyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgZmlsZWNtcAoraW1wb3J0IGZu
bWF0Y2gKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3lzCitp
bXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCBqc29uCisKK3BhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50
UGFyc2VyKCkKK3BhcnNlci5hZGRfYXJndW1lbnQoJ2lucHV0X2ZpbGUnLCBuYXJncz0nKicsIGhl
bHA9J0lucHV0IEpTIGZpbGVzIHdoaWNoIGJ1aWx0aW5zIGdlbmVyYXRlZCBmcm9tJykKK3BhcnNl
ci5hZGRfYXJndW1lbnQoJy0taW5wdXQtZGlyZWN0b3J5JywgaGVscD0nQWxsIEpTIGZpbGVzIHdp
bGwgYmUgdXNlZCBhcyBpbnB1dCBmcm9tIHRoaXMgZGlyZWN0b3J5LicpCitwYXJzZXIuYWRkX2Fy
Z3VtZW50KCctLW91dHB1dCcsIGhlbHA9J3BhdGggdG8gb3V0cHV0IGNwcCBvciBoIGZpbGUnKQor
cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1wcmVmaXgnLCBkZWZhdWx0PSdKU0MnLCBoZWxwPSdwcmVm
aXggdXNlZCBmb3IgcHVibGljIG1hY3JvcycpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW5hbWVz
cGFjZScsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J0MrKyBuYW1lc3BhY2UnKQorYXJncyA9IHBhcnNl
ci5wYXJzZV9hcmdzKCkKKworY29weXJpZ2h0VGV4dCA9ICIiIiAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovXG4KKyIiIgorCitnZW5lcmF0b3JTdHJpbmcgPSAiLyogR2Vu
ZXJhdGVkIGJ5ICVzIGRvIG5vdCBoYW5kIGVkaXQuICovXG4iICUgb3MucGF0aC5iYXNlbmFtZShf
X2ZpbGVfXykKKworZnVuY3Rpb25IZWFkUmVnRXhwID0gcmUuY29tcGlsZShyIig/OmZ1bmN0aW9u
fGNvbnN0cnVjdG9yKVxzK1x3K1xzKlwoLio/XCkiLCByZS5NVUxUSUxJTkUgfCByZS5TKQorZnVu
Y3Rpb25OYW1lUmVnRXhwID0gcmUuY29tcGlsZShyIig/OmZ1bmN0aW9ufGNvbnN0cnVjdG9yKVxz
KyhcdyspXHMqXCgiLCByZS5NVUxUSUxJTkUgfCByZS5TKQorZnVuY3Rpb25Jc0NvbnN0cnVjdG9y
UmVnRXhwID0gcmUuY29tcGlsZShyIl5jb25zdHJ1Y3RvciIsIHJlLk1VTFRJTElORSB8IHJlLlMp
CitmdW5jdGlvblBhcmFtZXRlckZpbmRlciA9IHJlLmNvbXBpbGUociJeKD86ZnVuY3Rpb258Y29u
c3RydWN0b3IpXHMrKD86XHcrKVxzKlwoKCg/OlxzKlx3Kyk/XHMqKD86XHMqLFxzKlx3KykqKT9c
cypcKSIsIHJlLk1VTFRJTElORSB8IHJlLlMpCisKK211bHRpbGluZUNvbW1lbnRSZWdFeHAgPSBy
ZS5jb21waWxlKHIiXC9cKi4qP1wqXC8iLCByZS5NVUxUSUxJTkUgfCByZS5TKQorc2luZ2xlTGlu
ZUNvbW1lbnRSZWdFeHAgPSByZS5jb21waWxlKHIiXC9cLy4qP1xuIiwgcmUuTVVMVElMSU5FIHwg
cmUuUykKKworZGVmIGdldENvcHlyaWdodChzb3VyY2UpOgorICAgIGNvcHlyaWdodEJsb2NrID0g
bXVsdGlsaW5lQ29tbWVudFJlZ0V4cC5maW5kYWxsKHNvdXJjZSlbMF0KKyAgICBjb3B5cmlnaHRC
bG9jayA9IGNvcHlyaWdodEJsb2NrWzpjb3B5cmlnaHRCbG9jay5pbmRleCgiUmVkaXN0cmlidXRp
b24iKV0KKyAgICBjb3B5UmlnaHRMaW5lcyA9IFtdCisKKyAgICBmb3IgbGluZSBpbiBjb3B5cmln
aHRCbG9jay5zcGxpdCgiXG4iKToKKyAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiLyoiLCAi
IikKKyAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiKi8iLCAiIikKKyAgICAgICAgbGluZSA9
IGxpbmUucmVwbGFjZSgiKiIsICIiKQorICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCJDb3B5
cmlnaHQiLCAiIikKKyAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiY29weXJpZ2h0IiwgIiIp
CisgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIihDKSIsICIiKQorICAgICAgICBsaW5lID0g
bGluZS5yZXBsYWNlKCIoYykiLCAiIikKKyAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQorICAg
ICAgICBpZiBsZW4obGluZSkgPT0gMDoKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAg
Y29weVJpZ2h0TGluZXMuYXBwZW5kKGxpbmUpCisgICAgCisgICAgcmV0dXJuIGxpc3Qoc2V0KGNv
cHlSaWdodExpbmVzKSkKKworY2xhc3MgRnVuY3Rpb24ob2JqZWN0KToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbmFtZSwgc291cmNlLCBpc0NvbnN0cnVjdG9yLCBwYXJhbWV0ZXJzKToKKyAgICAg
ICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICBzZWxmLnNvdXJjZSA9IHNvdXJjZQorICAgICAg
ICBzZWxmLmlzQ29uc3RydWN0b3IgPSBpc0NvbnN0cnVjdG9yCisgICAgICAgIHNlbGYucGFyYW1l
dGVycyA9IHBhcmFtZXRlcnMKKworICAgIGRlZiBtYW5nbGVOYW1lKHNlbGYsIG9iamVjdCk6Cisg
ICAgICAgIHFOYW1lID0gb2JqZWN0ICsgIi4iICsgc2VsZi5uYW1lCisgICAgICAgIG1hbmdsZWRO
YW1lID0gIiIKKyAgICAgICAgaSA9IDAKKyAgICAgICAgd2hpbGUgaSA8IGxlbihxTmFtZSk6Cisg
ICAgICAgICAgICBpZiBxTmFtZVtpXSA9PSAnLic6CisgICAgICAgICAgICAgICAgbWFuZ2xlZE5h
bWUgPSBtYW5nbGVkTmFtZSArIHFOYW1lW2kgKyAxXS51cHBlcigpCisgICAgICAgICAgICAgICAg
aSA9IGkgKyAxCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1hbmdsZWROYW1l
ID0gbWFuZ2xlZE5hbWUgKyBxTmFtZVtpXQorICAgICAgICAgICAgaSA9IGkgKyAxCisgICAgICAg
IGlmIHNlbGYuaXNDb25zdHJ1Y3RvcjoKKyAgICAgICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xl
ZE5hbWUgKyAiQ29uc3RydWN0b3IiCisgICAgICAgIHJldHVybiBtYW5nbGVkTmFtZQorCitkZWYg
Z2V0RnVuY3Rpb25zKHNvdXJjZSk6CisKKyAgICBzb3VyY2UgPSBtdWx0aWxpbmVDb21tZW50UmVn
RXhwLnN1YigiLyoqLyIsIHNpbmdsZUxpbmVDb21tZW50UmVnRXhwLnN1YigiLy9cbiIsIHNvdXJj
ZSkpCisKKyAgICBtYXRjaGVzID0gWyBmIGZvciBmIGluIGZ1bmN0aW9uSGVhZFJlZ0V4cC5maW5k
aXRlcihzb3VyY2UpXQorICAgIGZ1bmN0aW9uQm91bmRzID0gW10KKyAgICBzdGFydCA9IDAKKyAg
ICBlbmQgPSAwCisgICAgZm9yIG1hdGNoIGluIG1hdGNoZXM6CisgICAgICAgIHN0YXJ0ID0gbWF0
Y2guc3RhcnQoKQorICAgICAgICBpZiBzdGFydCA8IGVuZDoKKyAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgIGVuZCA9IG1hdGNoLmVuZCgpCisgICAgICAgIHdoaWxlIHNvdXJjZVtlbmRdICE9
ICd7JzoKKyAgICAgICAgICAgIGVuZCA9IGVuZCArIDEKKyAgICAgICAgZGVwdGggPSAxCisgICAg
ICAgIGVuZCA9IGVuZCArIDEKKyAgICAgICAgd2hpbGUgZGVwdGggPiAwOgorICAgICAgICAgICAg
aWYgc291cmNlW2VuZF0gPT0gJ3snOgorICAgICAgICAgICAgICAgIGRlcHRoID0gZGVwdGggKyAx
CisgICAgICAgICAgICBlbGlmIHNvdXJjZVtlbmRdID09ICd9JzoKKyAgICAgICAgICAgICAgICBk
ZXB0aCA9IGRlcHRoIC0gMQorICAgICAgICAgICAgZW5kID0gZW5kICsgMQorICAgICAgICBmdW5j
dGlvbkJvdW5kcy5hcHBlbmQoKHN0YXJ0LCBlbmQpKQorCisgICAgZnVuY3Rpb25zID0gW3NvdXJj
ZVtzdGFydDplbmRdLnN0cmlwKCkgZm9yIChzdGFydCwgZW5kKSBpbiBmdW5jdGlvbkJvdW5kc10K
KyAgICByZXN1bHQgPSBbXQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAg
IGZ1bmN0aW9uID0gbXVsdGlsaW5lQ29tbWVudFJlZ0V4cC5zdWIoIiIsIGZ1bmN0aW9uKQorICAg
ICAgICBmdW5jdGlvbk5hbWUgPSBmdW5jdGlvbk5hbWVSZWdFeHAuZmluZGFsbChmdW5jdGlvbilb
MF0KKyAgICAgICAgZnVuY3Rpb25Jc0NvbnN0cnVjdG9yID0gZnVuY3Rpb25Jc0NvbnN0cnVjdG9y
UmVnRXhwLm1hdGNoKGZ1bmN0aW9uKSAhPSBOb25lCisgICAgICAgIGZ1bmN0aW9uUGFyYW1ldGVy
cyA9IGZ1bmN0aW9uUGFyYW1ldGVyRmluZGVyLmZpbmRhbGwoZnVuY3Rpb24pWzBdLnNwbGl0KCcs
JykKKyAgICAgICAgaWYgbGVuKGZ1bmN0aW9uUGFyYW1ldGVyc1swXSkgPT0gMDoKKyAgICAgICAg
ICAgIGZ1bmN0aW9uUGFyYW1ldGVycyA9IFtdCisKKyAgICAgICAgcmVzdWx0LmFwcGVuZChGdW5j
dGlvbihmdW5jdGlvbk5hbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbklzQ29uc3RydWN0b3IsIGZ1bmN0
aW9uUGFyYW1ldGVycykpCisgICAgcmV0dXJuIHJlc3VsdAorCitkZWYgd3JpdGVJbmNsdWRlRGly
ZWN0aXZlcyh3cml0ZXIsIGhlYWRlck5hbWVzKToKKyAgICBmb3IgaGVhZGVyTmFtZSBpbiBoZWFk
ZXJOYW1lczoKKyAgICAgICAgd3JpdGVyLndyaXRlKCIjaW5jbHVkZSAiICsgaGVhZGVyTmFtZSAr
ICJcbiIpCisKK2RlZiBnZW5lcmF0ZUNvZGUoc291cmNlKToKKyAgICBpbnB1dEZpbGUgPSBvcGVu
KHNvdXJjZSwgInIiKQorICAgIGJhc2VOYW1lID0gb3MucGF0aC5iYXNlbmFtZShzb3VyY2UpLnJl
cGxhY2UoIi5qcyIsICIiKQorICAgIAorICAgIHNvdXJjZSA9ICIiCisgICAgZm9yIGxpbmUgaW4g
aW5wdXRGaWxlOgorICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyBsaW5lCisgICAgCisgICAgaWYg
c3lzLnBsYXRmb3JtID09ICJjeWd3aW4iOgorICAgICAgICBzb3VyY2UgPSBzb3VyY2UucmVwbGFj
ZSgiXHJcbiIsICJcbiIpCisgICAgcmV0dXJuIChiYXNlTmFtZSwgZ2V0RnVuY3Rpb25zKHNvdXJj
ZSksIGdldENvcHlyaWdodChzb3VyY2UpKQorCitidWlsdGlucyA9IFtdCitjb3B5cmlnaHRzID0g
W10KKyhvdXRwdXRfYmFzZSwgXykgPSBvcy5wYXRoLnNwbGl0ZXh0KGFyZ3Mub3V0cHV0KQorCitp
ZiBhcmdzLmlucHV0X2RpcmVjdG9yeToKKyAgICBmb3IgZmlsZSBpbiBvcy5saXN0ZGlyKGFyZ3Mu
aW5wdXRfZGlyZWN0b3J5KToKKyAgICAgICAgYXJncy5pbnB1dF9maWxlLmFwcGVuZChvcy5wYXRo
LmpvaW4oYXJncy5pbnB1dF9kaXJlY3RvcnksIGZpbGUpKQorCitmb3IgZmlsZSBpbiBhcmdzLmlu
cHV0X2ZpbGU6CisgICAgaWYgZm5tYXRjaC5mbm1hdGNoKGZpbGUsICcqLmpzJyk6CisgICAgICAg
IChiYXNlTmFtZSwgZnVuY3Rpb25zLCBvYmplY3RDb3B5cmlnaHRzKSA9IGdlbmVyYXRlQ29kZShm
aWxlKQorICAgICAgICBjb3B5cmlnaHRzLmV4dGVuZChvYmplY3RDb3B5cmlnaHRzKQorICAgICAg
ICBidWlsdGlucy5hcHBlbmQoKGJhc2VOYW1lLCBmdW5jdGlvbnMpKQorbmFtZXNwYWNlID0gYXJn
cy5uYW1lc3BhY2UKK21hY3JvUHJlZml4ID0gYXJncy5wcmVmaXgKK3Njb3BlTmFtZSA9IG9zLnBh
dGguc3BsaXRleHQob3MucGF0aC5iYXNlbmFtZShhcmdzLm91dHB1dCkpWzBdCitpbmNsdWRlR3Vh
cmQgPSBzY29wZU5hbWUgKyAiX0giCitoZWFkZXJOYW1lID0gc2NvcGVOYW1lICsgIi5oIgorCito
ZWFkZXJJbmNsdWRlcyA9IFsiXCJCdWlsdGluVXRpbHMuaFwiIl0gaWYgbmFtZXNwYWNlID09ICJK
U0MiIGVsc2UgWyI8YnVpbHRpbnMvQnVpbHRpblV0aWxzLmg+Il0KK2NvbnRlbnRJbmNsdWRlcyA9
IFsiXCJCdWlsdGluRXhlY3V0YWJsZXMuaFwiIiwgIlwiRXhlY3V0YWJsZS5oXCIiLCAiXCJKU0Nl
bGxJbmxpbmVzLmhcIiIsICJcIlZNLmhcIiJdIGlmIG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNlIFsi
PHJ1bnRpbWUvRXhlY3V0YWJsZS5oPiIsICI8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+Iiwg
IjxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+IiwgIjxydW50aW1lL0pTQ2VsbElubGluZXMu
aD4iLCAiPHJ1bnRpbWUvVk0uaD4iLCAiXCJXZWJDb3JlSlNDbGllbnREYXRhLmhcIiJdCisKK2Nv
cHlyaWdodHMgPSBsaXN0KHNldChjb3B5cmlnaHRzKSkKKworY29weXJpZ2h0Qm9keSA9ICIiCitm
b3IgY29weXJpZ2h0IGluIGNvcHlyaWdodHM6CisgICAgY29weXJpZ2h0Qm9keSA9IGNvcHlyaWdo
dEJvZHkgKyIgKiBDb3B5cmlnaHQgKEMpICIgKyBjb3B5cmlnaHQgKyAiXG4iCisKK2J1aWx0aW5z
SGVhZGVyID0gb3BlbihvdXRwdXRfYmFzZSArICIuaC50bXAiLCAidyIpCitidWlsdGluc0ltcGxl
bWVudGF0aW9uID0gb3BlbihvdXRwdXRfYmFzZSArICIuY3BwLnRtcCIsICJ3IikKK2NvcHlyaWdo
dFRleHQgPSAiLypcbiIgKyBjb3B5cmlnaHRCb2R5ICsgY29weXJpZ2h0VGV4dAorYnVpbHRpbnNI
ZWFkZXIud3JpdGUoIiIiJXMKKyVzCisKKyNpZm5kZWYgJXMKKyNkZWZpbmUgJXMKKworIiIiICUg
KGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCwgaW5jbHVkZUd1YXJkLCBpbmNsdWRlR3Vh
cmQpKQorCit3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSGVhZGVyLCBoZWFkZXJJbmNs
dWRlcykKKworYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCituYW1lc3BhY2UgSlNDIHsKKyAgICBj
bGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Cit9CisKK25hbWVzcGFjZSAlcyB7CisKKyIiIiAlIG5h
bWVzcGFjZSkKKworY29kZVJlZmVyZW5jZXMgPSBbXQorCitmb3IgKG9iamVjdE5hbWUsIGZ1bmN0
aW9ucykgaW4gYnVpbHRpbnM6CisgICAgcHJpbnQoIkdlbmVyYXRpbmcgYmluZGluZ3MgZm9yIHRo
ZSAlcyBidWlsdGluLiIgJSBvYmplY3ROYW1lKQorICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIv
KiAlcyBmdW5jdGlvbnMgKi9cbiIgJSBvYmplY3ROYW1lKQorICAgIGZvciBmdW5jdGlvbiBpbiBm
dW5jdGlvbnM6CisgICAgICAgIG5hbWUgPSBmdW5jdGlvbi5uYW1lCisgICAgICAgIG1hbmdsZWRO
YW1lID0gZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKQorICAgICAgICBtYW5nbGVkTmFt
ZSA9IG1hbmdsZWROYW1lWzBdLmxvd2VyKCkgKyBtYW5nbGVkTmFtZVsxOl0gKyAiQ29kZSIKKyAg
ICAgICAgY29kZVJlZmVyZW5jZXMuYXBwZW5kKChtYW5nbGVkTmFtZSwgZnVuY3Rpb24pKQorICAg
ICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IGNoYXIqIHNfJXM7XG4iICUg
bWFuZ2xlZE5hbWUpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3Qg
aW50IHNfJXNMZW5ndGg7XG4iICUgbWFuZ2xlZE5hbWUpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCJleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RB
YmlsaXR5O1xuIiAlIG1hbmdsZWROYW1lKQorICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIp
CisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF8lc19CVUlMVElO
KG1hY3JvKSBcXFxuIiAlIChtYWNyb1ByZWZpeCwgb2JqZWN0TmFtZS5yZXBsYWNlKCIuIiwgIl8i
KS51cHBlcigpKSkKKyAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgorICAgICAgICBtYW5n
bGVkTmFtZSA9IGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkKKyAgICAgICAgYnVpbHRp
bnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcywgJXMsICVkKSBcXFxuIiAlIChmdW5jdGlvbi5u
YW1lLCBtYW5nbGVkTmFtZSwgbGVuKGZ1bmN0aW9uLnBhcmFtZXRlcnMpKSkKKyAgICBidWlsdGlu
c0hlYWRlci53cml0ZSgiXG4iKQorICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAg
ICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0JVSUxUSU5fJXMgMVxuIiAlICht
YWNyb1ByZWZpeCwgZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKS51cHBlcigpKSkKKyAg
ICBidWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCituYW1lcyA9IFtdCitidWlsdGluc0hlYWRl
ci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU4obWFjcm8pXFxcbiIgJSBtYWNyb1By
ZWZpeCkKK2ZvciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgor
ICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIgICAgbWFjcm8oJXMsICVzLCBzXyVzTGVuZ3RoKSBc
XFxuIiAlIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbi5uYW1lLCBjb2RlUmVmZXJlbmNlKSkKKyAg
ICBuYW1lcy5hcHBlbmQoZnVuY3Rpb24ubmFtZSkKKworYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxu
XG4iKQorYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOX0ZV
TkNUSU9OX05BTUUobWFjcm8pIFxcXG4iICUgbWFjcm9QcmVmaXgpCitmb3IgbmFtZSBpbiBzb3J0
ZWQoc2V0KG5hbWVzKSk6CisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcykg
XFxcbiIgJSBuYW1lKQorYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCisKKyNkZWZpbmUgREVDTEFS
RV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50
KSBcXAorICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpT
Qzo6Vk0mKTsKKworJXNfRk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1Ip
CisjdW5kZWYgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgorCisjZGVmaW5lICVzX0JVSUxUSU5f
RVhJU1RTKG5hbWUpIGRlZmluZWQgJXNfQlVJTFRJTl8gIyMgbmFtZQorCit9CisKKyNlbmRpZiAv
LyAlcworCisiIiIgJSAobWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBtYWNyb1ByZWZpeCwgaW5j
bHVkZUd1YXJkKSkKKworYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIlcworJXMKKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiJXMiCisKKyIiIiAgJSAoZ2VuZXJhdG9y
U3RyaW5nLCBjb3B5cmlnaHRUZXh0LCBoZWFkZXJOYW1lKSkKKword3JpdGVJbmNsdWRlRGlyZWN0
aXZlcyhidWlsdGluc0ltcGxlbWVudGF0aW9uLCBjb250ZW50SW5jbHVkZXMpCisKK2J1aWx0aW5z
SW1wbGVtZW50YXRpb24ud3JpdGUoIiIiCituYW1lc3BhY2UgJXMgeworCisiIiIgICUgKG5hbWVz
cGFjZSkpCisKKworCitmb3IgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJl
bmNlczoKKyAgICBzb3VyY2UgPSBmdW5jdGlvbi5zb3VyY2UKKyAgICBzb3VyY2UgPSAiKGZ1bmN0
aW9uICIgKyBzb3VyY2Vbc291cmNlLmluZGV4KCIoIik6XSArICIpIgorICAgIGxpbmVzID0ganNv
bi5kdW1wcyhzb3VyY2UpWzE6LTFdLnNwbGl0KCJcXG4iKQorICAgIHNvdXJjZUxlbmd0aCA9IGxl
bihzb3VyY2UpCisgICAgc291cmNlID0gIiIKKyAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAg
ICAgc291cmNlID0gc291cmNlICsgKCIgICAgXCIlc1xcblwiIFxcXG4iICUgbGluZSkKKyAgICBi
dWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBjaGFyKiBzXyVzID1cbiVzO1xuXG4i
ICUgKGNvZGVSZWZlcmVuY2UsIHNvdXJjZSkpCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53
cml0ZSgiY29uc3QgaW50IHNfJXNMZW5ndGggPSAlZDtcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBz
b3VyY2VMZW5ndGggKyAxKSkgIyArIDEgZm9yIFxuCisgICAgY29uc3RydWN0QWJpbGl0eSA9ICJK
U0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdCIKKyAgICBpZiBmdW5jdGlvbi5p
c0NvbnN0cnVjdG9yOgorICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0
QWJpbGl0eTo6Q2FuQ29uc3RydWN0IgorICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUo
ImNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xu
XG4iICUgKGNvZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KKwor
YnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKKyNkZWZpbmUgREVGSU5FX0JVSUxUSU5f
R0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCitKU0M6
OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXFwK
KyIiIik7CisKK2lmIChuYW1lc3BhY2UgPT0gIkpTQyIpOgorICAgIGJ1aWx0aW5zSW1wbGVtZW50
YXRpb24ud3JpdGUoIiIie1xcCisgICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5j
b2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+
Y29kZU5hbWUjI1NvdXJjZSgpKTsgXFwKKyIiIikKK2Vsc2U6CisgICAgYnVpbHRpbk5hbWUgPSBz
Y29wZU5hbWVbMF0ubG93ZXIoKSArIHNjb3BlTmFtZVsxOl0KKyAgICBidWlsdGluc0ltcGxlbWVu
dGF0aW9uLndyaXRlKCIiIntcXAorICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3Rh
dGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXFwKKyAgICByZXR1cm4g
Y2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLiVzKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUo
KS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLiVzKCkuY29kZU5hbWUj
I1NvdXJjZSgpKTsgXFwKKyIiIiUgKGJ1aWx0aW5OYW1lLCBidWlsdGluTmFtZSkpCisKK2J1aWx0
aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIifQorJXNfRk9SRUFDSF9CVUlMVElOKERFRklORV9C
VUlMVElOX0dFTkVSQVRPUikKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKK30KKwor
IiIiJSAobWFjcm9QcmVmaXgpKQorCitidWlsdGluc0hlYWRlci5jbG9zZSgpCitidWlsdGluc0lt
cGxlbWVudGF0aW9uLmNsb3NlKCkKKworaWYgKG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFz
ZSArICIuaCIpKSBvciAobm90IGZpbGVjbXAuY21wKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsIG91
dHB1dF9iYXNlICsgIi5oIiwgc2hhbGxvdz1GYWxzZSkpOgorICAgIGlmIChvcy5wYXRoLmV4aXN0
cyhvdXRwdXRfYmFzZSArICIuaCIpKToKKyAgICAgICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsg
Ii5oIikKKyAgICBvcy5yZW5hbWUob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2Ug
KyAiLmgiKQorZWxzZToKKyAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgudG1wIikKKwor
aWYgKG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuY3BwIikpIG9yIChub3QgZmls
ZWNtcC5jbXAob3V0cHV0X2Jhc2UgKyAiLmNwcC50bXAiLCBvdXRwdXRfYmFzZSArICIuY3BwIiwg
c2hhbGxvdz1GYWxzZSkpOgorICAgIGlmIChvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIu
Y3BwIikpOgorICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmNwcCIpCisgICAgb3Mu
cmVuYW1lKG91dHB1dF9iYXNlICsgIi5jcHAudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmNwcCIpCitl
bHNlOgorICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuY3BwLnRtcCIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNo
ZWV0cy1hbmQtc2NyaXB0cy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2lubGlu
ZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MjAw
Yzg0ZWU5ZTY2ZDMxYjZjYWVlY2I0NDY4MDcxMmU3MzdjNjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0
cy1hbmQtc2NyaXB0cy5weQpAQCAtMCwwICsxLDgxIEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBzY3JpcHQg
aW5saW5lcyBhbmQgbWluaWZpZXMgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIHNjcmlwdHMuCisj
ICAtIDxsaW5rIGhyZWY9Ii4uLiIgcmVsPSJzdHlsZXNoZWV0Ij4gPT4gPHN0eWxlPi4uLjwvc3R5
bGU+CisjICAtIDxzY3JpcHQgc3JjPSIuLi4iPiAgICAgICAgICAgICAgICAgPT4gPHNjcmlwdD4u
Li48L3NjcmlwdD4KKworaW1wb3J0IGNzc21pbgoraW1wb3J0IGpzbWluCitpbXBvcnQgb3MucGF0
aAoraW1wb3J0IHJlCitpbXBvcnQgc3lzCisKKworZGVmIG1haW4oYXJndik6CisKKyAgICBpZiBs
ZW4oYXJndikgPCAyOgorICAgICAgICBwcmludCgndXNhZ2U6ICVzIGlucHV0RmlsZSBvdXRwdXRG
aWxlJyAlIGFyZ3ZbMF0pCisgICAgICAgIHJldHVybiAxCisKKyAgICBpbnB1dEZpbGVOYW1lID0g
YXJndlsxXQorICAgIG91dHB1dEZpbGVOYW1lID0gYXJndlsyXQorICAgIGltcG9ydHNEaXIgPSBv
cy5wYXRoLmRpcm5hbWUoaW5wdXRGaWxlTmFtZSkKKworICAgIGlucHV0RmlsZSA9IG9wZW4oaW5w
dXRGaWxlTmFtZSwgJ3InKQorICAgIGlucHV0Q29udGVudCA9IGlucHV0RmlsZS5yZWFkKCkKKyAg
ICBpbnB1dEZpbGUuY2xvc2UoKQorCisgICAgZGVmIGlubGluZShtYXRjaCwgbWluaWZpZXIsIHBy
ZWZpeCwgcG9zdGZpeCk6CisgICAgICAgIGltcG9ydEZpbGVOYW1lID0gbWF0Y2guZ3JvdXAoMSkK
KyAgICAgICAgZnVsbFBhdGggPSBvcy5wYXRoLmpvaW4oaW1wb3J0c0RpciwgaW1wb3J0RmlsZU5h
bWUpCisgICAgICAgIGlmIG5vdCBvcy5hY2Nlc3MoZnVsbFBhdGgsIG9zLkZfT0spOgorICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGaWxlICVzIHJlZmVyZW5jZWQgaW4gJXMgbm90IGZvdW5k
JyAlIChpbXBvcnRGaWxlTmFtZSwgaW5wdXRGaWxlTmFtZSkpCisgICAgICAgIGltcG9ydEZpbGUg
PSBvcGVuKGZ1bGxQYXRoLCAncicpCisgICAgICAgIGltcG9ydENvbnRlbnQgPSBtaW5pZmllcihp
bXBvcnRGaWxlLnJlYWQoKSkKKyAgICAgICAgaW1wb3J0RmlsZS5jbG9zZSgpCisgICAgICAgIHJl
dHVybiAnJXMlcyVzJyAlIChwcmVmaXgsIGltcG9ydENvbnRlbnQsIHBvc3RmaXgpCisKKyAgICBk
ZWYgaW5saW5lU3R5bGVzaGVldChtYXRjaCk6CisgICAgICAgIHJldHVybiBpbmxpbmUobWF0Y2gs
IGNzc21pbi5jc3NtaW5pZnksICI8c3R5bGU+IiwgIjwvc3R5bGU+IikKKworICAgIGRlZiBpbmxp
bmVTY3JpcHQobWF0Y2gpOgorICAgICAgICByZXR1cm4gaW5saW5lKG1hdGNoLCBqc21pbi5qc21p
biwgIjxzY3JpcHQ+IiwgIjwvc2NyaXB0PiIpCisKKyAgICBvdXRwdXRDb250ZW50ID0gcmUuc3Vi
KHInPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPVtcJyJdKFteXCciXSspW1wnIl0+JywgaW5s
aW5lU3R5bGVzaGVldCwgaW5wdXRDb250ZW50KQorICAgIG91dHB1dENvbnRlbnQgPSByZS5zdWIo
cic8c2NyaXB0IHNyYz1bXCciXShbXlwnIl0rKVtcJyJdPjwvc2NyaXB0PicsIGlubGluZVNjcmlw
dCwgb3V0cHV0Q29udGVudCkKKworICAgIG91dHB1dEZpbGUgPSBvcGVuKG91dHB1dEZpbGVOYW1l
LCAndycpCisgICAgb3V0cHV0RmlsZS53cml0ZShvdXRwdXRDb250ZW50KQorICAgIG91dHB1dEZp
bGUuY2xvc2UoKQorCisgICAgIyBUb3VjaCBvdXRwdXQgZmlsZSBkaXJlY3RvcnkgdG8gbWFrZSBz
dXJlIHRoYXQgWGNvZGUgd2lsbCBjb3B5CisgICAgIyBtb2RpZmllZCByZXNvdXJjZSBmaWxlcy4K
KyAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6CisgICAgICAgIG91dHB1dERpck5hbWUg
PSBvcy5wYXRoLmRpcm5hbWUob3V0cHV0RmlsZU5hbWUpCisgICAgICAgIG9zLnV0aW1lKG91dHB1
dERpck5hbWUsIE5vbmUpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4
aXQobWFpbihzeXMuYXJndikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9qc21pbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2pzbWluLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjgzZDJhNTBhYzk1ZDhhMGE3MDllNTNkZGRiN2I4YTU1ZGZhYmEzY2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9qc21pbi5weQpAQCAt
MCwwICsxLDIzOCBAQAorIyBUaGlzIGNvZGUgaXMgb3JpZ2luYWwgZnJvbSBqc21pbiBieSBEb3Vn
bGFzIENyb2NrZm9yZCwgaXQgd2FzIHRyYW5zbGF0ZWQgdG8KKyMgUHl0aG9uIGJ5IEJhcnVjaCBF
dmVuLiBJdCB3YXMgcmV3cml0dGVuIGJ5IERhdmUgU3QuR2VybWFpbiBmb3Igc3BlZWQuCisjCisj
IFRoZSBNSVQgTGljZW5zZSAoTUlUKQorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgRGF2ZSBTdC5H
ZXJtYWluCisjCisjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyMgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwK
KyMgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cworIyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisjIGNvcGllcyBvZiB0
aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBp
cworIyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgorIworIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorIyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs
IHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyMgSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFksCisjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorIyBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisjIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sCisjIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP
RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KKyMgVEhFIFNPRlRXQVJFLgor
CisKK2ltcG9ydCBzeXMKK2lzXzMgPSBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKQoraWYgaXNf
MzoKKyAgICBpbXBvcnQgaW8KK2Vsc2U6CisgICAgaW1wb3J0IFN0cmluZ0lPCisgICAgdHJ5Ogor
ICAgICAgICBpbXBvcnQgY1N0cmluZ0lPCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAg
ICBjU3RyaW5nSU8gPSBOb25lCisKKworX19hbGxfXyA9IFsnanNtaW4nLCAnSmF2YXNjcmlwdE1p
bmlmeSddCitfX3ZlcnNpb25fXyA9ICcyLjAuOScKKworCitkZWYganNtaW4oanMpOgorICAgICIi
IgorICAgIHJldHVybnMgYSBtaW5pZmllZCB2ZXJzaW9uIG9mIHRoZSBqYXZhc2NyaXB0IHN0cmlu
ZworICAgICIiIgorICAgIGlmIG5vdCBpc18zOgorICAgICAgICBpZiBjU3RyaW5nSU8gYW5kIG5v
dCBpc2luc3RhbmNlKGpzLCB1bmljb2RlKToKKyAgICAgICAgICAgICMgc3RyaW5ncyBjYW4gdXNl
IGNTdHJpbmdJTyBmb3IgYSAzeCBwZXJmb3JtYW5jZQorICAgICAgICAgICAgIyBpbXByb3ZlbWVu
dCwgYnV0IHVuaWNvZGUgKGluIHB5dGhvbjIpIGNhbm5vdAorICAgICAgICAgICAga2xhc3MgPSBj
U3RyaW5nSU8uU3RyaW5nSU8KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGtsYXNzID0gU3Ry
aW5nSU8uU3RyaW5nSU8KKyAgICBlbHNlOgorICAgICAgICBrbGFzcyA9IGlvLlN0cmluZ0lPCisg
ICAgaW5zID0ga2xhc3MoanMpCisgICAgb3V0cyA9IGtsYXNzKCkKKyAgICBKYXZhc2NyaXB0TWlu
aWZ5KGlucywgb3V0cykubWluaWZ5KCkKKyAgICByZXR1cm4gb3V0cy5nZXR2YWx1ZSgpCisKKwor
Y2xhc3MgSmF2YXNjcmlwdE1pbmlmeShvYmplY3QpOgorICAgICIiIgorICAgIE1pbmlmeSBhbiBp
bnB1dCBzdHJlYW0gb2YgamF2YXNjcmlwdCwgd3JpdGluZworICAgIHRvIGFuIG91dHB1dCBzdHJl
YW0KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbnN0cmVhbT1Ob25lLCBvdXRz
dHJlYW09Tm9uZSk6CisgICAgICAgIHNlbGYuaW5zID0gaW5zdHJlYW0KKyAgICAgICAgc2VsZi5v
dXRzID0gb3V0c3RyZWFtCisKKyAgICBkZWYgbWluaWZ5KHNlbGYsIGluc3RyZWFtPU5vbmUsIG91
dHN0cmVhbT1Ob25lKToKKyAgICAgICAgaWYgaW5zdHJlYW0gYW5kIG91dHN0cmVhbToKKyAgICAg
ICAgICAgIHNlbGYuaW5zLCBzZWxmLm91dHMgPSBpbnN0cmVhbSwgb3V0c3RyZWFtCisKKyAgICAg
ICAgc2VsZi5pc19yZXR1cm4gPSBGYWxzZQorICAgICAgICBzZWxmLnJldHVybl9idWYgPSAnJwor
CisgICAgICAgIGRlZiB3cml0ZShjaGFyKToKKyAgICAgICAgICAgICMgYWxsIG9mIHRoaXMgaXMg
dG8gc3VwcG9ydCBsaXRlcmFsIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCisgICAgICAgICAgICAjIHNp
Z2gKKyAgICAgICAgICAgIGlmIGNoYXIgaW4gJ3JldHVybic6CisgICAgICAgICAgICAgICAgc2Vs
Zi5yZXR1cm5fYnVmICs9IGNoYXIKKyAgICAgICAgICAgICAgICBzZWxmLmlzX3JldHVybiA9IHNl
bGYucmV0dXJuX2J1ZiA9PSAncmV0dXJuJworICAgICAgICAgICAgc2VsZi5vdXRzLndyaXRlKGNo
YXIpCisgICAgICAgICAgICBpZiBzZWxmLmlzX3JldHVybjoKKyAgICAgICAgICAgICAgICBzZWxm
LnJldHVybl9idWYgPSAnJworCisgICAgICAgIHJlYWQgPSBzZWxmLmlucy5yZWFkCisKKyAgICAg
ICAgc3BhY2Vfc3RyaW5ncyA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJcCisgICAgICAg
ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODlfJFxcIgorICAgICAgICBzdGFy
dGVycywgZW5kZXJzID0gJ3tbKCstJywgJ31dKSstIlwnJworICAgICAgICBuZXdsaW5lc3RhcnRf
c3RyaW5ncyA9IHN0YXJ0ZXJzICsgc3BhY2Vfc3RyaW5ncworICAgICAgICBuZXdsaW5lZW5kX3N0
cmluZ3MgPSBlbmRlcnMgKyBzcGFjZV9zdHJpbmdzCisgICAgICAgIGRvX25ld2xpbmUgPSBGYWxz
ZQorICAgICAgICBkb19zcGFjZSA9IEZhbHNlCisgICAgICAgIGVzY2FwZV9zbGFzaF9jb3VudCA9
IDAKKyAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBGYWxzZQorICAgICAgICBwcmV2aW91
c19iZWZvcmVfY29tbWVudCA9ICcnCisgICAgICAgIGRvaW5nX211bHRpX2NvbW1lbnQgPSBGYWxz
ZQorICAgICAgICBpbl9yZSA9IEZhbHNlCisgICAgICAgIGluX3F1b3RlID0gJycKKyAgICAgICAg
cXVvdGVfYnVmID0gW10KKworICAgICAgICBwcmV2aW91cyA9IHJlYWQoMSkKKyAgICAgICAgaWYg
cHJldmlvdXMgPT0gJ1xcJzoKKyAgICAgICAgICAgIGVzY2FwZV9zbGFzaF9jb3VudCArPSAxCisg
ICAgICAgIG5leHQxID0gcmVhZCgxKQorICAgICAgICBpZiBwcmV2aW91cyA9PSAnLyc6CisgICAg
ICAgICAgICBpZiBuZXh0MSA9PSAnLyc6CisgICAgICAgICAgICAgICAgZG9pbmdfc2luZ2xlX2Nv
bW1lbnQgPSBUcnVlCisgICAgICAgICAgICBlbGlmIG5leHQxID09ICcqJzoKKyAgICAgICAgICAg
ICAgICBkb2luZ19tdWx0aV9jb21tZW50ID0gVHJ1ZQorICAgICAgICAgICAgICAgIHByZXZpb3Vz
ID0gbmV4dDEKKyAgICAgICAgICAgICAgICBuZXh0MSA9IHJlYWQoMSkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgd3JpdGUocHJldmlvdXMpCisgICAgICAgIGVsaWYgbm90IHBy
ZXZpb3VzOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsaWYgcHJldmlvdXMgPj0gJyEn
OgorICAgICAgICAgICAgaWYgcHJldmlvdXMgaW4gIidcIiI6CisgICAgICAgICAgICAgICAgaW5f
cXVvdGUgPSBwcmV2aW91cworICAgICAgICAgICAgd3JpdGUocHJldmlvdXMpCisgICAgICAgICAg
ICBwcmV2aW91c19ub25fc3BhY2UgPSBwcmV2aW91cworICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcHJldmlvdXNfbm9uX3NwYWNlID0gJyAnCisgICAgICAgIGlmIG5vdCBuZXh0MToKKyAgICAg
ICAgICAgIHJldHVybgorCisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBuZXh0MiA9IHJl
YWQoMSkKKyAgICAgICAgICAgIGlmIG5vdCBuZXh0MjoKKyAgICAgICAgICAgICAgICBsYXN0ID0g
bmV4dDEuc3RyaXAoKQorICAgICAgICAgICAgICAgIGlmIG5vdCAoZG9pbmdfc2luZ2xlX2NvbW1l
bnQgb3IgZG9pbmdfbXVsdGlfY29tbWVudClcCisgICAgICAgICAgICAgICAgICAgIGFuZCBsYXN0
IG5vdCBpbiAoJycsICcvJyk6CisgICAgICAgICAgICAgICAgICAgIGlmIGluX3F1b3RlOgorICAg
ICAgICAgICAgICAgICAgICAgICAgd3JpdGUoJycuam9pbihxdW90ZV9idWYpKQorICAgICAgICAg
ICAgICAgICAgICB3cml0ZShsYXN0KQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg
ICBpZiBkb2luZ19tdWx0aV9jb21tZW50OgorICAgICAgICAgICAgICAgIGlmIG5leHQxID09ICcq
JyBhbmQgbmV4dDIgPT0gJy8nOgorICAgICAgICAgICAgICAgICAgICBkb2luZ19tdWx0aV9jb21t
ZW50ID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCisgICAgICAg
ICAgICBlbGlmIGRvaW5nX3NpbmdsZV9jb21tZW50OgorICAgICAgICAgICAgICAgIGlmIG5leHQx
IGluICdcclxuJzoKKyAgICAgICAgICAgICAgICAgICAgZG9pbmdfc2luZ2xlX2NvbW1lbnQgPSBG
YWxzZQorICAgICAgICAgICAgICAgICAgICB3aGlsZSBuZXh0MiBpbiAnXHJcbic6CisgICAgICAg
ICAgICAgICAgICAgICAgICBuZXh0MiA9IHJlYWQoMSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBuZXh0MjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICAgICAgICAgICAgICBpZiBwcmV2aW91c19iZWZvcmVfY29tbWVudCBpbiAnKX1dJzoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGRvX25ld2xpbmUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAg
IGVsaWYgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQgaW4gc3BhY2Vfc3RyaW5nczoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdyaXRlKCdcbicpCisgICAgICAgICAgICBlbGlmIGluX3F1b3RlOgor
ICAgICAgICAgICAgICAgIHF1b3RlX2J1Zi5hcHBlbmQobmV4dDEpCisKKyAgICAgICAgICAgICAg
ICBpZiBuZXh0MSA9PSBpbl9xdW90ZToKKyAgICAgICAgICAgICAgICAgICAgbnVtc2xhc2hlcyA9
IDAKKyAgICAgICAgICAgICAgICAgICAgZm9yIGMgaW4gcmV2ZXJzZWQocXVvdGVfYnVmWzotMV0p
OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgYyAhPSAnXFwnOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bXNsYXNoZXMgKz0gMQorICAgICAgICAgICAgICAgICAg
ICBpZiBudW1zbGFzaGVzICUgMiA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgaW5fcXVv
dGUgPSAnJworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUoJycuam9pbihxdW90ZV9idWYp
KQorICAgICAgICAgICAgZWxpZiBuZXh0MSBpbiAnXHJcbic6CisgICAgICAgICAgICAgICAgaWYg
cHJldmlvdXNfbm9uX3NwYWNlIGluIG5ld2xpbmVlbmRfc3RyaW5ncyBcCisgICAgICAgICAgICAg
ICAgICAgIG9yIHByZXZpb3VzX25vbl9zcGFjZSA+ICd+JzoKKyAgICAgICAgICAgICAgICAgICAg
d2hpbGUgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5leHQyIDwgJyEnOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5leHQyID0gcmVhZCgxKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIG5vdCBuZXh0MjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgbmV4dDIgaW4gbmV3bGluZXN0YXJ0X3N0cmluZ3MgXAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvciBuZXh0MiA+ICd+JyBvciBuZXh0MiA9PSAnLyc6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvX25ld2xpbmUgPSBUcnVlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgbmV4dDEgPCAnIScgYW5k
IG5vdCBpbl9yZToKKyAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNfbm9uX3NwYWNlIGluIHNw
YWNlX3N0cmluZ3MgXAorICAgICAgICAgICAgICAgICAgICBvciBwcmV2aW91c19ub25fc3BhY2Ug
PiAnficpIFwKKyAgICAgICAgICAgICAgICAgICAgYW5kIChuZXh0MiBpbiBzcGFjZV9zdHJpbmdz
IG9yIG5leHQyID4gJ34nKToKKyAgICAgICAgICAgICAgICAgICAgZG9fc3BhY2UgPSBUcnVlCisg
ICAgICAgICAgICAgICAgZWxpZiBwcmV2aW91c19ub25fc3BhY2UgaW4gJy0rJyBhbmQgbmV4dDIg
PT0gcHJldmlvdXNfbm9uX3NwYWNlOgorICAgICAgICAgICAgICAgICAgICAjIHByb3RlY3QgYWdh
aW5zdCArICsrIG9yIC0gLS0gc2VxdWVuY2VzCisgICAgICAgICAgICAgICAgICAgIGRvX3NwYWNl
ID0gVHJ1ZQorICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5pc19yZXR1cm4gYW5kIG5leHQyID09
ICcvJzoKKyAgICAgICAgICAgICAgICAgICAgIyByZXR1cm5pbmcgYSByZWdleC4uLgorICAgICAg
ICAgICAgICAgICAgICB3cml0ZSgnICcpCisgICAgICAgICAgICBlbGlmIG5leHQxID09ICcvJzoK
KyAgICAgICAgICAgICAgICBpZiBkb19zcGFjZToKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUo
JyAnKQorICAgICAgICAgICAgICAgIGlmIGluX3JlOgorICAgICAgICAgICAgICAgICAgICBpZiBw
cmV2aW91cyAhPSAnXFwnIG9yIChub3QgZXNjYXBlX3NsYXNoX2NvdW50ICUgMikgb3IgbmV4dDIg
aW4gJ2dpbXknOgorICAgICAgICAgICAgICAgICAgICAgICAgaW5fcmUgPSBGYWxzZQorICAgICAg
ICAgICAgICAgICAgICB3cml0ZSgnLycpCisgICAgICAgICAgICAgICAgZWxpZiBuZXh0MiA9PSAn
Lyc6CisgICAgICAgICAgICAgICAgICAgIGRvaW5nX3NpbmdsZV9jb21tZW50ID0gVHJ1ZQorICAg
ICAgICAgICAgICAgICAgICBwcmV2aW91c19iZWZvcmVfY29tbWVudCA9IHByZXZpb3VzX25vbl9z
cGFjZQorICAgICAgICAgICAgICAgIGVsaWYgbmV4dDIgPT0gJyonOgorICAgICAgICAgICAgICAg
ICAgICBkb2luZ19tdWx0aV9jb21tZW50ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBwcmV2
aW91cyA9IG5leHQxCisgICAgICAgICAgICAgICAgICAgIG5leHQxID0gbmV4dDIKKyAgICAgICAg
ICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgaW5fcmUgPSBwcmV2aW91c19ub25fc3BhY2UgaW4gJygsPTpbPyEmfCcg
b3Igc2VsZi5pc19yZXR1cm4gICMgbGl0ZXJhbCByZWd1bGFyIGV4cHJlc3Npb24KKyAgICAgICAg
ICAgICAgICAgICAgd3JpdGUoJy8nKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBpZiBkb19zcGFjZToKKyAgICAgICAgICAgICAgICAgICAgZG9fc3BhY2UgPSBGYWxzZQorICAg
ICAgICAgICAgICAgICAgICB3cml0ZSgnICcpCisgICAgICAgICAgICAgICAgaWYgZG9fbmV3bGlu
ZToKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUoJ1xuJykKKyAgICAgICAgICAgICAgICAgICAg
ZG9fbmV3bGluZSA9IEZhbHNlCisKKyAgICAgICAgICAgICAgICB3cml0ZShuZXh0MSkKKyAgICAg
ICAgICAgICAgICBpZiBub3QgaW5fcmUgYW5kIG5leHQxIGluICInXCIiOgorICAgICAgICAgICAg
ICAgICAgICBpbl9xdW90ZSA9IG5leHQxCisgICAgICAgICAgICAgICAgICAgIHF1b3RlX2J1ZiA9
IFtdCisKKyAgICAgICAgICAgIHByZXZpb3VzID0gbmV4dDEKKyAgICAgICAgICAgIG5leHQxID0g
bmV4dDIKKworICAgICAgICAgICAgaWYgcHJldmlvdXMgPj0gJyEnOgorICAgICAgICAgICAgICAg
IHByZXZpb3VzX25vbl9zcGFjZSA9IHByZXZpb3VzCisKKyAgICAgICAgICAgIGlmIHByZXZpb3Vz
ID09ICdcXCc6CisgICAgICAgICAgICAgICAgZXNjYXBlX3NsYXNoX2NvdW50ICs9IDEKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXNjYXBlX3NsYXNoX2NvdW50ID0gMAorCitp
ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIG1pbmlmaWVyID0gSmF2YXNjcmlwdE1pbmlm
eShzeXMuc3RkaW4sIHN5cy5zdGRvdXQpCisgICAgbWluaWZpZXIubWluaWZ5KCkKKyAgICBzeXMu
c3Rkb3V0LndyaXRlKCdcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy94eGQucGwgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy94eGQucGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWVlMDhhNTJkOGU2NmNmZGEzYzA4M2Y3YWRiMTVmOTZjMDhhOWIwYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3h4ZC5wbApAQCAtMCwwICsx
LDQ1IEBACisjISAvdXNyL2Jpbi9wZXJsCisKKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAjIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgIyBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICMgTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisKKyR2YXJu
YW1lID0gc2hpZnQ7CiskZm5hbWUgPSBzaGlmdDsKKyRvdXRwdXQgPSBzaGlmdDsKKworb3Blbigk
aW5wdXQsICc8JywgJGZuYW1lKSBvciBkaWUgIkNhbid0IG9wZW4gZmlsZSBmb3IgcmVhZDogJGZu
YW1lICQhIjsKKyQvID0gdW5kZWY7CiskdGV4dCA9IDwkaW5wdXQ+OworY2xvc2UoJGlucHV0KTsK
KworJHRleHQgPSBqb2luKCcsICcsIG1hcCgnMHgnIC4gdW5wYWNrKCJIKiIsICRfKSwgc3BsaXQo
dW5kZWYsICR0ZXh0KSkpOworCitvcGVuKCRvdXRwdXQsICc+JywgJG91dHB1dCkgb3IgZGllICJD
YW4ndCBvcGVuIGZpbGUgZm9yIHdyaXRlOiAkb3V0cHV0ICQhIjsKK3ByaW50ICRvdXRwdXQgImNv
bnN0IHVuc2lnbmVkIGNoYXIgJHZhcm5hbWVcW1xdID0ge1xuJHRleHRcbn07XG4iOworY2xvc2Uo
JG91dHB1dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMt
YnVpbHRpbnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZjQxODczZGEyYjY1YTc3MTE0Y2Y1ZDQxZTg3
YTRjMGQzMDYzN2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisrKyAvZGV2L251
bGwKQEAgLTEsMzQzICswLDAgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0jIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
IyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0jIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0jIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1p
bXBvcnQgYXJncGFyc2UKLWltcG9ydCBmaWxlY21wCi1pbXBvcnQgZm5tYXRjaAotaW1wb3J0IG9z
Ci1pbXBvcnQgcmUKLWltcG9ydCBzaHV0aWwKLWltcG9ydCBzeXMKLWltcG9ydCBkYXRldGltZQot
aW1wb3J0IGpzb24KLQotcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQotcGFyc2Vy
LmFkZF9hcmd1bWVudCgnaW5wdXRfZmlsZScsIG5hcmdzPScqJywgaGVscD0nSW5wdXQgSlMgZmls
ZXMgd2hpY2ggYnVpbHRpbnMgZ2VuZXJhdGVkIGZyb20nKQotcGFyc2VyLmFkZF9hcmd1bWVudCgn
LS1pbnB1dC1kaXJlY3RvcnknLCBoZWxwPSdBbGwgSlMgZmlsZXMgd2lsbCBiZSB1c2VkIGFzIGlu
cHV0IGZyb20gdGhpcyBkaXJlY3RvcnkuJykKLXBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0
JywgaGVscD0ncGF0aCB0byBvdXRwdXQgY3BwIG9yIGggZmlsZScpCi1wYXJzZXIuYWRkX2FyZ3Vt
ZW50KCctLXByZWZpeCcsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J3ByZWZpeCB1c2VkIGZvciBwdWJs
aWMgbWFjcm9zJykKLXBhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFtZXNwYWNlJywgZGVmYXVsdD0n
SlNDJywgaGVscD0nQysrIG5hbWVzcGFjZScpCi1hcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQot
Ci1jb3B5cmlnaHRUZXh0ID0gIiIiICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi9cbgotIiIiCi0KLWdlbmVyYXRvclN0cmluZyA9ICIvKiBHZW5lcmF0ZWQgYnkgJXMgZG8g
bm90IGhhbmQgZWRpdC4gKi9cbiIgJSBvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKQotCi1mdW5j
dGlvbkhlYWRSZWdFeHAgPSByZS5jb21waWxlKHIiKD86ZnVuY3Rpb258Y29uc3RydWN0b3IpXHMr
XHcrXHMqXCguKj9cKSIsIHJlLk1VTFRJTElORSB8IHJlLlMpCi1mdW5jdGlvbk5hbWVSZWdFeHAg
PSByZS5jb21waWxlKHIiKD86ZnVuY3Rpb258Y29uc3RydWN0b3IpXHMrKFx3KylccypcKCIsIHJl
Lk1VTFRJTElORSB8IHJlLlMpCi1mdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAgPSByZS5jb21w
aWxlKHIiXmNvbnN0cnVjdG9yIiwgcmUuTVVMVElMSU5FIHwgcmUuUykKLWZ1bmN0aW9uUGFyYW1l
dGVyRmluZGVyID0gcmUuY29tcGlsZShyIl4oPzpmdW5jdGlvbnxjb25zdHJ1Y3RvcilccysoPzpc
dyspXHMqXCgoKD86XHMqXHcrKT9ccyooPzpccyosXHMqXHcrKSopP1xzKlwpIiwgcmUuTVVMVElM
SU5FIHwgcmUuUykKLQotbXVsdGlsaW5lQ29tbWVudFJlZ0V4cCA9IHJlLmNvbXBpbGUociJcL1wq
Lio/XCpcLyIsIHJlLk1VTFRJTElORSB8IHJlLlMpCi1zaW5nbGVMaW5lQ29tbWVudFJlZ0V4cCA9
IHJlLmNvbXBpbGUociJcL1wvLio/XG4iLCByZS5NVUxUSUxJTkUgfCByZS5TKQotCi1kZWYgZ2V0
Q29weXJpZ2h0KHNvdXJjZSk6Ci0gICAgY29weXJpZ2h0QmxvY2sgPSBtdWx0aWxpbmVDb21tZW50
UmVnRXhwLmZpbmRhbGwoc291cmNlKVswXQotICAgIGNvcHlyaWdodEJsb2NrID0gY29weXJpZ2h0
QmxvY2tbOmNvcHlyaWdodEJsb2NrLmluZGV4KCJSZWRpc3RyaWJ1dGlvbiIpXQotICAgIGNvcHlS
aWdodExpbmVzID0gW10KLQotICAgIGZvciBsaW5lIGluIGNvcHlyaWdodEJsb2NrLnNwbGl0KCJc
biIpOgotICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCIvKiIsICIiKQotICAgICAgICBsaW5l
ID0gbGluZS5yZXBsYWNlKCIqLyIsICIiKQotICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCIq
IiwgIiIpCi0gICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIkNvcHlyaWdodCIsICIiKQotICAg
ICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCJjb3B5cmlnaHQiLCAiIikKLSAgICAgICAgbGluZSA9
IGxpbmUucmVwbGFjZSgiKEMpIiwgIiIpCi0gICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIihj
KSIsICIiKQotICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCi0gICAgICAgIGlmIGxlbihsaW5l
KSA9PSAwOgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBjb3B5UmlnaHRMaW5lcy5h
cHBlbmQobGluZSkKLSAgICAKLSAgICByZXR1cm4gbGlzdChzZXQoY29weVJpZ2h0TGluZXMpKQot
Ci1jbGFzcyBGdW5jdGlvbihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBz
b3VyY2UsIGlzQ29uc3RydWN0b3IsIHBhcmFtZXRlcnMpOgotICAgICAgICBzZWxmLm5hbWUgPSBu
YW1lCi0gICAgICAgIHNlbGYuc291cmNlID0gc291cmNlCi0gICAgICAgIHNlbGYuaXNDb25zdHJ1
Y3RvciA9IGlzQ29uc3RydWN0b3IKLSAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gcGFyYW1ldGVy
cwotCi0gICAgZGVmIG1hbmdsZU5hbWUoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgcU5hbWUgPSBv
YmplY3QgKyAiLiIgKyBzZWxmLm5hbWUKLSAgICAgICAgbWFuZ2xlZE5hbWUgPSAiIgotICAgICAg
ICBpID0gMAotICAgICAgICB3aGlsZSBpIDwgbGVuKHFOYW1lKToKLSAgICAgICAgICAgIGlmIHFO
YW1lW2ldID09ICcuJzoKLSAgICAgICAgICAgICAgICBtYW5nbGVkTmFtZSA9IG1hbmdsZWROYW1l
ICsgcU5hbWVbaSArIDFdLnVwcGVyKCkKLSAgICAgICAgICAgICAgICBpID0gaSArIDEKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5nbGVkTmFtZSAr
IHFOYW1lW2ldCi0gICAgICAgICAgICBpID0gaSArIDEKLSAgICAgICAgaWYgc2VsZi5pc0NvbnN0
cnVjdG9yOgotICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBtYW5nbGVkTmFtZSArICJDb25zdHJ1
Y3RvciIKLSAgICAgICAgcmV0dXJuIG1hbmdsZWROYW1lCi0KLWRlZiBnZXRGdW5jdGlvbnMoc291
cmNlKToKLQotICAgIHNvdXJjZSA9IG11bHRpbGluZUNvbW1lbnRSZWdFeHAuc3ViKCIvKiovIiwg
c2luZ2xlTGluZUNvbW1lbnRSZWdFeHAuc3ViKCIvL1xuIiwgc291cmNlKSkKLQotICAgIG1hdGNo
ZXMgPSBbIGYgZm9yIGYgaW4gZnVuY3Rpb25IZWFkUmVnRXhwLmZpbmRpdGVyKHNvdXJjZSldCi0g
ICAgZnVuY3Rpb25Cb3VuZHMgPSBbXQotICAgIHN0YXJ0ID0gMAotICAgIGVuZCA9IDAKLSAgICBm
b3IgbWF0Y2ggaW4gbWF0Y2hlczoKLSAgICAgICAgc3RhcnQgPSBtYXRjaC5zdGFydCgpCi0gICAg
ICAgIGlmIHN0YXJ0IDwgZW5kOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZW5kID0g
bWF0Y2guZW5kKCkKLSAgICAgICAgd2hpbGUgc291cmNlW2VuZF0gIT0gJ3snOgotICAgICAgICAg
ICAgZW5kID0gZW5kICsgMQotICAgICAgICBkZXB0aCA9IDEKLSAgICAgICAgZW5kID0gZW5kICsg
MQotICAgICAgICB3aGlsZSBkZXB0aCA+IDA6Ci0gICAgICAgICAgICBpZiBzb3VyY2VbZW5kXSA9
PSAneyc6Ci0gICAgICAgICAgICAgICAgZGVwdGggPSBkZXB0aCArIDEKLSAgICAgICAgICAgIGVs
aWYgc291cmNlW2VuZF0gPT0gJ30nOgotICAgICAgICAgICAgICAgIGRlcHRoID0gZGVwdGggLSAx
Ci0gICAgICAgICAgICBlbmQgPSBlbmQgKyAxCi0gICAgICAgIGZ1bmN0aW9uQm91bmRzLmFwcGVu
ZCgoc3RhcnQsIGVuZCkpCi0KLSAgICBmdW5jdGlvbnMgPSBbc291cmNlW3N0YXJ0OmVuZF0uc3Ry
aXAoKSBmb3IgKHN0YXJ0LCBlbmQpIGluIGZ1bmN0aW9uQm91bmRzXQotICAgIHJlc3VsdCA9IFtd
Ci0gICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgZnVuY3Rpb24gPSBtdWx0
aWxpbmVDb21tZW50UmVnRXhwLnN1YigiIiwgZnVuY3Rpb24pCi0gICAgICAgIGZ1bmN0aW9uTmFt
ZSA9IGZ1bmN0aW9uTmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9uKVswXQotICAgICAgICBmdW5j
dGlvbklzQ29uc3RydWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2goZnVu
Y3Rpb24pICE9IE5vbmUKLSAgICAgICAgZnVuY3Rpb25QYXJhbWV0ZXJzID0gZnVuY3Rpb25QYXJh
bWV0ZXJGaW5kZXIuZmluZGFsbChmdW5jdGlvbilbMF0uc3BsaXQoJywnKQotICAgICAgICBpZiBs
ZW4oZnVuY3Rpb25QYXJhbWV0ZXJzWzBdKSA9PSAwOgotICAgICAgICAgICAgZnVuY3Rpb25QYXJh
bWV0ZXJzID0gW10KLQotICAgICAgICByZXN1bHQuYXBwZW5kKEZ1bmN0aW9uKGZ1bmN0aW9uTmFt
ZSwgZnVuY3Rpb24sIGZ1bmN0aW9uSXNDb25zdHJ1Y3RvciwgZnVuY3Rpb25QYXJhbWV0ZXJzKSkK
LSAgICByZXR1cm4gcmVzdWx0Ci0KLWRlZiB3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKHdyaXRlciwg
aGVhZGVyTmFtZXMpOgotICAgIGZvciBoZWFkZXJOYW1lIGluIGhlYWRlck5hbWVzOgotICAgICAg
ICB3cml0ZXIud3JpdGUoIiNpbmNsdWRlICIgKyBoZWFkZXJOYW1lICsgIlxuIikKLQotZGVmIGdl
bmVyYXRlQ29kZShzb3VyY2UpOgotICAgIGlucHV0RmlsZSA9IG9wZW4oc291cmNlLCAiciIpCi0g
ICAgYmFzZU5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHNvdXJjZSkucmVwbGFjZSgiLmpzIiwgIiIp
Ci0gICAgCi0gICAgc291cmNlID0gIiIKLSAgICBmb3IgbGluZSBpbiBpbnB1dEZpbGU6Ci0gICAg
ICAgIHNvdXJjZSA9IHNvdXJjZSArIGxpbmUKLSAgICAKLSAgICBpZiBzeXMucGxhdGZvcm0gPT0g
ImN5Z3dpbiI6Ci0gICAgICAgIHNvdXJjZSA9IHNvdXJjZS5yZXBsYWNlKCJcclxuIiwgIlxuIikK
LSAgICByZXR1cm4gKGJhc2VOYW1lLCBnZXRGdW5jdGlvbnMoc291cmNlKSwgZ2V0Q29weXJpZ2h0
KHNvdXJjZSkpCi0KLWJ1aWx0aW5zID0gW10KLWNvcHlyaWdodHMgPSBbXQotKG91dHB1dF9iYXNl
LCBfKSA9IG9zLnBhdGguc3BsaXRleHQoYXJncy5vdXRwdXQpCi0KLWlmIGFyZ3MuaW5wdXRfZGly
ZWN0b3J5OgotICAgIGZvciBmaWxlIGluIG9zLmxpc3RkaXIoYXJncy5pbnB1dF9kaXJlY3Rvcnkp
OgotICAgICAgICBhcmdzLmlucHV0X2ZpbGUuYXBwZW5kKG9zLnBhdGguam9pbihhcmdzLmlucHV0
X2RpcmVjdG9yeSwgZmlsZSkpCi0KLWZvciBmaWxlIGluIGFyZ3MuaW5wdXRfZmlsZToKLSAgICBp
ZiBmbm1hdGNoLmZubWF0Y2goZmlsZSwgJyouanMnKToKLSAgICAgICAgKGJhc2VOYW1lLCBmdW5j
dGlvbnMsIG9iamVjdENvcHlyaWdodHMpID0gZ2VuZXJhdGVDb2RlKGZpbGUpCi0gICAgICAgIGNv
cHlyaWdodHMuZXh0ZW5kKG9iamVjdENvcHlyaWdodHMpCi0gICAgICAgIGJ1aWx0aW5zLmFwcGVu
ZCgoYmFzZU5hbWUsIGZ1bmN0aW9ucykpCi1uYW1lc3BhY2UgPSBhcmdzLm5hbWVzcGFjZQotbWFj
cm9QcmVmaXggPSBhcmdzLnByZWZpeAotc2NvcGVOYW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5w
YXRoLmJhc2VuYW1lKGFyZ3Mub3V0cHV0KSlbMF0KLWluY2x1ZGVHdWFyZCA9IHNjb3BlTmFtZSAr
ICJfSCIKLWhlYWRlck5hbWUgPSBzY29wZU5hbWUgKyAiLmgiCi0KLWhlYWRlckluY2x1ZGVzID0g
WyJcIkJ1aWx0aW5VdGlscy5oXCIiXSBpZiBuYW1lc3BhY2UgPT0gIkpTQyIgZWxzZSBbIjxidWls
dGlucy9CdWlsdGluVXRpbHMuaD4iXQotY29udGVudEluY2x1ZGVzID0gWyJcIkJ1aWx0aW5FeGVj
dXRhYmxlcy5oXCIiLCAiXCJFeGVjdXRhYmxlLmhcIiIsICJcIkpTQ2VsbElubGluZXMuaFwiIiwg
IlwiVk0uaFwiIl0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2UgWyI8cnVudGltZS9FeGVjdXRh
YmxlLmg+IiwgIjxydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaD4iLCAiPHJ1bnRpbWUvSlNDSlNW
YWx1ZUlubGluZXMuaD4iLCAiPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPiIsICI8cnVudGltZS9W
TS5oPiIsICJcIldlYkNvcmVKU0NsaWVudERhdGEuaFwiIl0KLQotY29weXJpZ2h0cyA9IGxpc3Qo
c2V0KGNvcHlyaWdodHMpKQotCi1jb3B5cmlnaHRCb2R5ID0gIiIKLWZvciBjb3B5cmlnaHQgaW4g
Y29weXJpZ2h0czoKLSAgICBjb3B5cmlnaHRCb2R5ID0gY29weXJpZ2h0Qm9keSArIiAqIENvcHly
aWdodCAoQykgIiArIGNvcHlyaWdodCArICJcbiIKLQotYnVpbHRpbnNIZWFkZXIgPSBvcGVuKG91
dHB1dF9iYXNlICsgIi5oLnRtcCIsICJ3IikKLWJ1aWx0aW5zSW1wbGVtZW50YXRpb24gPSBvcGVu
KG91dHB1dF9iYXNlICsgIi5jcHAudG1wIiwgInciKQotY29weXJpZ2h0VGV4dCA9ICIvKlxuIiAr
IGNvcHlyaWdodEJvZHkgKyBjb3B5cmlnaHRUZXh0Ci1idWlsdGluc0hlYWRlci53cml0ZSgiIiIl
cwotJXMKLQotI2lmbmRlZiAlcwotI2RlZmluZSAlcwotCi0iIiIgJSAoZ2VuZXJhdG9yU3RyaW5n
LCBjb3B5cmlnaHRUZXh0LCBpbmNsdWRlR3VhcmQsIGluY2x1ZGVHdWFyZCkpCi0KLXdyaXRlSW5j
bHVkZURpcmVjdGl2ZXMoYnVpbHRpbnNIZWFkZXIsIGhlYWRlckluY2x1ZGVzKQotCi1idWlsdGlu
c0hlYWRlci53cml0ZSgiIiIKLW5hbWVzcGFjZSBKU0MgewotICAgIGNsYXNzIEZ1bmN0aW9uRXhl
Y3V0YWJsZTsKLX0KLQotbmFtZXNwYWNlICVzIHsKLQotIiIiICUgbmFtZXNwYWNlKQotCi1jb2Rl
UmVmZXJlbmNlcyA9IFtdCi0KLWZvciAob2JqZWN0TmFtZSwgZnVuY3Rpb25zKSBpbiBidWlsdGlu
czoKLSAgICBwcmludCgiR2VuZXJhdGluZyBiaW5kaW5ncyBmb3IgdGhlICVzIGJ1aWx0aW4uIiAl
IG9iamVjdE5hbWUpCi0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIi8qICVzIGZ1bmN0aW9ucyAq
L1xuIiAlIG9iamVjdE5hbWUpCi0gICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAg
ICAgbmFtZSA9IGZ1bmN0aW9uLm5hbWUKLSAgICAgICAgbWFuZ2xlZE5hbWUgPSBmdW5jdGlvbi5t
YW5nbGVOYW1lKG9iamVjdE5hbWUpCi0gICAgICAgIG1hbmdsZWROYW1lID0gbWFuZ2xlZE5hbWVb
MF0ubG93ZXIoKSArIG1hbmdsZWROYW1lWzE6XSArICJDb2RlIgotICAgICAgICBjb2RlUmVmZXJl
bmNlcy5hcHBlbmQoKG1hbmdsZWROYW1lLCBmdW5jdGlvbikpCi0gICAgICAgIGJ1aWx0aW5zSGVh
ZGVyLndyaXRlKCJleHRlcm4gY29uc3QgY2hhciogc18lcztcbiIgJSBtYW5nbGVkTmFtZSkKLSAg
ICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBpbnQgc18lc0xlbmd0aDtc
biIgJSBtYW5nbGVkTmFtZSkKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBj
b25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0cnVjdEFiaWxpdHk7XG4iICUgbWFu
Z2xlZE5hbWUpCi0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuIikKLSAgICBidWlsdGluc0hl
YWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIXyVzX0JVSUxUSU4obWFjcm8pIFxcXG4iICUg
KG1hY3JvUHJlZml4LCBvYmplY3ROYW1lLnJlcGxhY2UoIi4iLCAiXyIpLnVwcGVyKCkpKQotICAg
IGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6Ci0gICAgICAgIG1hbmdsZWROYW1lID0gZnVuY3Rp
b24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKQotICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgi
ICAgIG1hY3JvKCVzLCAlcywgJWQpIFxcXG4iICUgKGZ1bmN0aW9uLm5hbWUsIG1hbmdsZWROYW1l
LCBsZW4oZnVuY3Rpb24ucGFyYW1ldGVycykpKQotICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJc
biIpCi0gICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgYnVpbHRpbnNIZWFk
ZXIud3JpdGUoIiNkZWZpbmUgJXNfQlVJTFRJTl8lcyAxXG4iICUgKG1hY3JvUHJlZml4LCBmdW5j
dGlvbi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpKQotICAgIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCJcblxuIikKLW5hbWVzID0gW10KLWJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5l
ICVzX0ZPUkVBQ0hfQlVJTFRJTihtYWNybylcXFxuIiAlIG1hY3JvUHJlZml4KQotZm9yIChjb2Rl
UmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6Ci0gICAgYnVpbHRpbnNIZWFk
ZXIud3JpdGUoIiAgICBtYWNybyglcywgJXMsIHNfJXNMZW5ndGgpIFxcXG4iICUgKGNvZGVSZWZl
cmVuY2UsIGZ1bmN0aW9uLm5hbWUsIGNvZGVSZWZlcmVuY2UpKQotICAgIG5hbWVzLmFwcGVuZChm
dW5jdGlvbi5uYW1lKQotCi1idWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCi1idWlsdGluc0hl
YWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNy
bykgXFxcbiIgJSBtYWNyb1ByZWZpeCkKLWZvciBuYW1lIGluIHNvcnRlZChzZXQobmFtZXMpKToK
LSAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzKSBcXFxuIiAlIG5hbWUpCi1i
dWlsdGluc0hlYWRlci53cml0ZSgiIiIKLQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJB
VE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCi0gICAgSlNDOjpG
dW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwotCi0lc19G
T1JFQUNIX0JVSUxUSU4oREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUNMQVJF
X0JVSUxUSU5fR0VORVJBVE9SCi0KLSNkZWZpbmUgJXNfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVm
aW5lZCAlc19CVUlMVElOXyAjIyBuYW1lCi0KLX0KLQotI2VuZGlmIC8vICVzCi0KLSIiIiAlICht
YWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBpbmNsdWRlR3VhcmQpKQotCi1i
dWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIiVzCi0lcwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpbmNsdWRlICIlcyIKLQotIiIiICAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdo
dFRleHQsIGhlYWRlck5hbWUpKQotCi13cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSW1w
bGVtZW50YXRpb24sIGNvbnRlbnRJbmNsdWRlcykKLQotYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53
cml0ZSgiIiIKLW5hbWVzcGFjZSAlcyB7Ci0KLSIiIiAgJSAobmFtZXNwYWNlKSkKLQotCi0KLWZv
ciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgotICAgIHNvdXJj
ZSA9IGZ1bmN0aW9uLnNvdXJjZQotICAgIHNvdXJjZSA9ICIoZnVuY3Rpb24gIiArIHNvdXJjZVtz
b3VyY2UuaW5kZXgoIigiKTpdICsgIikiCi0gICAgbGluZXMgPSBqc29uLmR1bXBzKHNvdXJjZSlb
MTotMV0uc3BsaXQoIlxcbiIpCi0gICAgc291cmNlTGVuZ3RoID0gbGVuKHNvdXJjZSkKLSAgICBz
b3VyY2UgPSAiIgotICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICBzb3VyY2UgPSBzb3Vy
Y2UgKyAoIiAgICBcIiVzXFxuXCIgXFxcbiIgJSBsaW5lKQotICAgIGJ1aWx0aW5zSW1wbGVtZW50
YXRpb24ud3JpdGUoImNvbnN0IGNoYXIqIHNfJXMgPVxuJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5j
ZSwgc291cmNlKSkKLSAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBpbnQg
c18lc0xlbmd0aCA9ICVkO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIHNvdXJjZUxlbmd0aCArIDEp
KSAjICsgMSBmb3IgXG4KLSAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJp
bGl0eTo6Q2Fubm90Q29uc3RydWN0IgotICAgIGlmIGZ1bmN0aW9uLmlzQ29uc3RydWN0b3I6Ci0g
ICAgICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25z
dHJ1Y3QiCi0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5ID0gJXM7XG5cbiIgJSAoY29kZVJlZmVy
ZW5jZSwgY29uc3RydWN0QWJpbGl0eSkpICMgKyAxIGZvciBcbgotCi1idWlsdGluc0ltcGxlbWVu
dGF0aW9uLndyaXRlKCIiIgotI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5h
bWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLUpTQzo6RnVuY3Rpb25FeGVjdXRh
YmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXAotIiIiKTsKLQotaWYgKG5h
bWVzcGFjZSA9PSAiSlNDIik6Ci0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ7
XFwKLSAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRh
YmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNl
KCkpOyBcXAotIiIiKQotZWxzZToKLSAgICBidWlsdGluTmFtZSA9IHNjb3BlTmFtZVswXS5sb3dl
cigpICsgc2NvcGVOYW1lWzE6XQotICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIi
e1xcCi0gICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xp
ZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWls
dGluRnVuY3Rpb25zKCkuJXMoKS5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCBjbGll
bnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuJXMoKS5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAot
IiIiJSAoYnVpbHRpbk5hbWUsIGJ1aWx0aW5OYW1lKSkKLQotYnVpbHRpbnNJbXBsZW1lbnRhdGlv
bi53cml0ZSgiIiJ9Ci0lc19GT1JFQUNIX0JVSUxUSU4oREVGSU5FX0JVSUxUSU5fR0VORVJBVE9S
KQotI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgotfQotCi0iIiIlIChtYWNyb1ByZWZp
eCkpCi0KLWJ1aWx0aW5zSGVhZGVyLmNsb3NlKCkKLWJ1aWx0aW5zSW1wbGVtZW50YXRpb24uY2xv
c2UoKQotCi1pZiAobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpIG9yIChu
b3QgZmlsZWNtcC5jbXAob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgi
LCBzaGFsbG93PUZhbHNlKSk6Ci0gICAgaWYgKG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsg
Ii5oIikpOgotICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgiKQotICAgIG9zLnJl
bmFtZShvdXRwdXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFzZSArICIuaCIpCi1lbHNlOgot
ICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuaC50bXAiKQotCi1pZiAobm90IG9zLnBhdGgu
ZXhpc3RzKG91dHB1dF9iYXNlICsgIi5jcHAiKSkgb3IgKG5vdCBmaWxlY21wLmNtcChvdXRwdXRf
YmFzZSArICIuY3BwLnRtcCIsIG91dHB1dF9iYXNlICsgIi5jcHAiLCBzaGFsbG93PUZhbHNlKSk6
Ci0gICAgaWYgKG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5jcHAiKSk6Ci0gICAgICAg
IG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuY3BwIikKLSAgICBvcy5yZW5hbWUob3V0cHV0X2Jh
c2UgKyAiLmNwcC50bXAiLCBvdXRwdXRfYmFzZSArICIuY3BwIikKLWVsc2U6Ci0gICAgb3MucmVt
b3ZlKG91dHB1dF9iYXNlICsgIi5jcHAudG1wIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jc3NtaW4ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY3NzbWluLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhMDY0MGViMjg0YmFkZDRmNWM4MmU3MWEzZmNhYzZkOGE3MWUzMDIxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9jc3NtaW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCww
IEBACi0jIS91c3IvYmluL3B5dGhvbgotCi0jIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJl
IG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi1pbXBvcnQgcmUKLQotZGVmIGNzc21pbmlmeShjc3MpOgotICAgIHJ1bGVzID0gKAot
ICAgICAgICAociJcL1wqLio/XCpcLyIsICIiKSwgICAgICAgICAgIyBkZWxldGUgY29tbWVudHMK
LSAgICAgICAgKHIiXG4iLCAiIiksICAgICAgICAgICAgICAgICAgICMgZGVsZXRlIG5ldyBsaW5l
cwotICAgICAgICAociJccysiLCAiICIpLCAgICAgICAgICAgICAgICAgIyBjaGFuZ2UgbXVsdGlw
bGUgc3BhY2VzIHRvIG9uZSBzcGFjZQotICAgICAgICAociJccz8oWzs6e30sKz5dKVxzPyIsIHIi
XDEiKSwgIyBkZWxldGUgc3BhY2Ugd2hlcmUgaXQgaXMgbm90IG5lZWRlZAotICAgICAgICAociI7
fSIsICJ9IikgICAgICAgICAgICAgICAgICAgIyBjaGFuZ2UgJzt9JyB0byAnfScgYmVjYXVzZSB0
aGUgc2VtaWNvbG9uIGlzIG5vdCBuZWVkZWQKLSAgICApCi0KLSAgICBjc3MgPSBjc3MucmVwbGFj
ZSgiXHJcbiIsICJcbiIpCi0gICAgZm9yIHJ1bGUgaW4gcnVsZXM6Ci0gICAgICAgIGNzcyA9IHJl
LmNvbXBpbGUocnVsZVswXSwgcmUuTVVMVElMSU5FIHwgcmUuVU5JQ09ERSB8IHJlLkRPVEFMTCku
c3ViKHJ1bGVbMV0sIGNzcykKLSAgICByZXR1cm4gY3NzCi0KLWlmIF9fbmFtZV9fID09ICJfX21h
aW5fXyI6Ci0gICAgaW1wb3J0IHN5cwotICAgIHN5cy5zdGRvdXQud3JpdGUoY3NzbWluaWZ5KHN5
cy5zdGRpbi5yZWFkKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWNvbWJpbmVkLWluc3Bl
Y3Rvci1qc29uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1MzY2MDMxOGRkY2Uz
YmE3OGNiYjA2OTZhMjE3NTgxOTYwZjkxMDEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9nZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weQorKysgL2Rldi9udWxsCkBAIC0x
LDY5ICswLDAgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLWltcG9ydCBnbG9iCi1pbXBvcnQganNvbgotaW1wb3J0IG9zCi1pbXBv
cnQgc3lzCi0KLWlmIGxlbihzeXMuYXJndikgPCAyOgotICAgIHByaW50KCJ1c2FnZTogJXMgW2pz
b24gZmlsZXMgb3IgZGlyZWN0b3J5IG9mIGpzb24gZmlsZXMgLi4uXSIgJSBvcy5wYXRoLmJhc2Vu
YW1lKHN5cy5hcmd2WzBdKSkKLSAgICBzeXMuZXhpdCgxKQotCi1maWxlcyA9IFtdCi1mb3IgYXJn
IGluIHN5cy5hcmd2WzE6XToKLSAgICBpZiBub3Qgb3MuYWNjZXNzKGFyZywgb3MuRl9PSyk6Ci0g
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRmlsZSBcIiVzXCIgbm90IGZvdW5kIiAlIGFyZykKLSAg
ICBlbGlmIG9zLnBhdGguaXNkaXIoYXJnKToKLSAgICAgICAgZmlsZXMuZXh0ZW5kKGdsb2IuZ2xv
Yihvcy5wYXRoLmpvaW4oYXJnLCAiKi5qc29uIikpKQotICAgIGVsc2U6Ci0gICAgICAgIGZpbGVz
LmFwcGVuZChhcmcpCi1maWxlcy5zb3J0KCkKLQotIyBUbyBrZWVwIGFzIGNsb3NlIHRvIHRoZSBv
cmlnaW5hbCBKU09OIGZvcm1hdHRpbmcgYXMgcG9zc2libGUsIGp1c3QKLSMgZHVtcCBlYWNoIEpT
T04gaW5wdXQgZmlsZSB1bm1vZGlmaWVkIGludG8gYW4gYXJyYXkgb2YgImRvbWFpbnMiLgotIyBW
YWxpZGF0ZSBlYWNoIGZpbGUgaXMgdmFsaWQgSlNPTiBhbmQgdGhhdCB0aGVyZSBpcyBhICJkb21h
aW4iIGtleS4KLQotZmlyc3QgPSBUcnVlCi1wcmludCgie1wiZG9tYWluc1wiOlsiKQotZm9yIGZp
bGUgaW4gZmlsZXM6Ci0gICAgaWYgZmlyc3Q6Ci0gICAgICAgIGZpcnN0ID0gRmFsc2UKLSAgICBl
bHNlOgotICAgICAgICBwcmludCgiLCIpCi0KLSAgICBzdHJpbmcgPSBvcGVuKGZpbGUpLnJlYWQo
KQotCi0gICAgdHJ5OgotICAgICAgICBkaWN0aW9uYXJ5ID0ganNvbi5sb2FkcyhzdHJpbmcpCi0g
ICAgICAgIGlmIG5vdCAiZG9tYWluIiBpbiBkaWN0aW9uYXJ5OgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCJGaWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWlucyBhIFwiZG9tYWluXCIga2V5
LiIgJSBmaWxlKQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKCJGaWxlIFwiJXNcIiBkb2VzIG5vdCBjb250YWluIHZhbGlkIEpTT046XG4iICUgZmlsZSkK
LSAgICAgICAgcmFpc2UKLQotICAgIHByaW50KHN0cmluZy5yc3RyaXAoKSkKLXByaW50KCJdfSIp
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9p
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9pbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0
cy1hbmQtc2NyaXB0cy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggODkyMDBjODRl
ZTllNjZkMzFiNmNhZWVjYjQ0NjgwNzEyZTczN2M2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSMgVGhpcyBzY3JpcHQgaW5saW5lcyBh
bmQgbWluaWZpZXMgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIHNjcmlwdHMuCi0jICAtIDxsaW5r
IGhyZWY9Ii4uLiIgcmVsPSJzdHlsZXNoZWV0Ij4gPT4gPHN0eWxlPi4uLjwvc3R5bGU+Ci0jICAt
IDxzY3JpcHQgc3JjPSIuLi4iPiAgICAgICAgICAgICAgICAgPT4gPHNjcmlwdD4uLi48L3Njcmlw
dD4KLQotaW1wb3J0IGNzc21pbgotaW1wb3J0IGpzbWluCi1pbXBvcnQgb3MucGF0aAotaW1wb3J0
IHJlCi1pbXBvcnQgc3lzCi0KLQotZGVmIG1haW4oYXJndik6Ci0KLSAgICBpZiBsZW4oYXJndikg
PCAyOgotICAgICAgICBwcmludCgndXNhZ2U6ICVzIGlucHV0RmlsZSBvdXRwdXRGaWxlJyAlIGFy
Z3ZbMF0pCi0gICAgICAgIHJldHVybiAxCi0KLSAgICBpbnB1dEZpbGVOYW1lID0gYXJndlsxXQot
ICAgIG91dHB1dEZpbGVOYW1lID0gYXJndlsyXQotICAgIGltcG9ydHNEaXIgPSBvcy5wYXRoLmRp
cm5hbWUoaW5wdXRGaWxlTmFtZSkKLQotICAgIGlucHV0RmlsZSA9IG9wZW4oaW5wdXRGaWxlTmFt
ZSwgJ3InKQotICAgIGlucHV0Q29udGVudCA9IGlucHV0RmlsZS5yZWFkKCkKLSAgICBpbnB1dEZp
bGUuY2xvc2UoKQotCi0gICAgZGVmIGlubGluZShtYXRjaCwgbWluaWZpZXIsIHByZWZpeCwgcG9z
dGZpeCk6Ci0gICAgICAgIGltcG9ydEZpbGVOYW1lID0gbWF0Y2guZ3JvdXAoMSkKLSAgICAgICAg
ZnVsbFBhdGggPSBvcy5wYXRoLmpvaW4oaW1wb3J0c0RpciwgaW1wb3J0RmlsZU5hbWUpCi0gICAg
ICAgIGlmIG5vdCBvcy5hY2Nlc3MoZnVsbFBhdGgsIG9zLkZfT0spOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdGaWxlICVzIHJlZmVyZW5jZWQgaW4gJXMgbm90IGZvdW5kJyAlIChpbXBv
cnRGaWxlTmFtZSwgaW5wdXRGaWxlTmFtZSkpCi0gICAgICAgIGltcG9ydEZpbGUgPSBvcGVuKGZ1
bGxQYXRoLCAncicpCi0gICAgICAgIGltcG9ydENvbnRlbnQgPSBtaW5pZmllcihpbXBvcnRGaWxl
LnJlYWQoKSkKLSAgICAgICAgaW1wb3J0RmlsZS5jbG9zZSgpCi0gICAgICAgIHJldHVybiAnJXMl
cyVzJyAlIChwcmVmaXgsIGltcG9ydENvbnRlbnQsIHBvc3RmaXgpCi0KLSAgICBkZWYgaW5saW5l
U3R5bGVzaGVldChtYXRjaCk6Ci0gICAgICAgIHJldHVybiBpbmxpbmUobWF0Y2gsIGNzc21pbi5j
c3NtaW5pZnksICI8c3R5bGU+IiwgIjwvc3R5bGU+IikKLQotICAgIGRlZiBpbmxpbmVTY3JpcHQo
bWF0Y2gpOgotICAgICAgICByZXR1cm4gaW5saW5lKG1hdGNoLCBqc21pbi5qc21pbiwgIjxzY3Jp
cHQ+IiwgIjwvc2NyaXB0PiIpCi0KLSAgICBvdXRwdXRDb250ZW50ID0gcmUuc3ViKHInPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPVtcJyJdKFteXCciXSspW1wnIl0+JywgaW5saW5lU3R5bGVz
aGVldCwgaW5wdXRDb250ZW50KQotICAgIG91dHB1dENvbnRlbnQgPSByZS5zdWIocic8c2NyaXB0
IHNyYz1bXCciXShbXlwnIl0rKVtcJyJdPjwvc2NyaXB0PicsIGlubGluZVNjcmlwdCwgb3V0cHV0
Q29udGVudCkKLQotICAgIG91dHB1dEZpbGUgPSBvcGVuKG91dHB1dEZpbGVOYW1lLCAndycpCi0g
ICAgb3V0cHV0RmlsZS53cml0ZShvdXRwdXRDb250ZW50KQotICAgIG91dHB1dEZpbGUuY2xvc2Uo
KQotCi0gICAgIyBUb3VjaCBvdXRwdXQgZmlsZSBkaXJlY3RvcnkgdG8gbWFrZSBzdXJlIHRoYXQg
WGNvZGUgd2lsbCBjb3B5Ci0gICAgIyBtb2RpZmllZCByZXNvdXJjZSBmaWxlcy4KLSAgICBpZiBz
eXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgIG91dHB1dERpck5hbWUgPSBvcy5wYXRo
LmRpcm5hbWUob3V0cHV0RmlsZU5hbWUpCi0gICAgICAgIG9zLnV0aW1lKG91dHB1dERpck5hbWUs
IE5vbmUpCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgc3lzLmV4aXQobWFpbihz
eXMuYXJndikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvanNtaW4ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
anNtaW4ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzZDJhNTBhYzk1ZDhhMGE3
MDllNTNkZGRiN2I4YTU1ZGZhYmEzY2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2pz
bWluLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjM4ICswLDAgQEAKLSMgVGhpcyBjb2RlIGlzIG9y
aWdpbmFsIGZyb20ganNtaW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQsIGl0IHdhcyB0cmFuc2xhdGVk
IHRvCi0jIFB5dGhvbiBieSBCYXJ1Y2ggRXZlbi4gSXQgd2FzIHJld3JpdHRlbiBieSBEYXZlIFN0
Lkdlcm1haW4gZm9yIHNwZWVkLgotIwotIyBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKLSMKLSMgQ29w
eXJpZ2h0IChjKSAyMDEzIERhdmUgU3QuR2VybWFpbgotIwotIyBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5
Ci0jIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0jIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKLSMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbAotIyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLSMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSMKLSMgVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSMg
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0jCi0j
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCi0jIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg
VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotIyBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUKLSMgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUgotIyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAotIyBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOCi0jIFRIRSBTT0ZUV0FSRS4KLQotCi1pbXBvcnQgc3lzCi1pc18zID0gc3lzLnZlcnNp
b25faW5mbyA+PSAoMywgMCkKLWlmIGlzXzM6Ci0gICAgaW1wb3J0IGlvCi1lbHNlOgotICAgIGlt
cG9ydCBTdHJpbmdJTwotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IGNTdHJpbmdJTwotICAgIGV4
Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgY1N0cmluZ0lPID0gTm9uZQotCi0KLV9fYWxsX18g
PSBbJ2pzbWluJywgJ0phdmFzY3JpcHRNaW5pZnknXQotX192ZXJzaW9uX18gPSAnMi4wLjknCi0K
LQotZGVmIGpzbWluKGpzKToKLSAgICAiIiIKLSAgICByZXR1cm5zIGEgbWluaWZpZWQgdmVyc2lv
biBvZiB0aGUgamF2YXNjcmlwdCBzdHJpbmcKLSAgICAiIiIKLSAgICBpZiBub3QgaXNfMzoKLSAg
ICAgICAgaWYgY1N0cmluZ0lPIGFuZCBub3QgaXNpbnN0YW5jZShqcywgdW5pY29kZSk6Ci0gICAg
ICAgICAgICAjIHN0cmluZ3MgY2FuIHVzZSBjU3RyaW5nSU8gZm9yIGEgM3ggcGVyZm9ybWFuY2UK
LSAgICAgICAgICAgICMgaW1wcm92ZW1lbnQsIGJ1dCB1bmljb2RlIChpbiBweXRob24yKSBjYW5u
b3QKLSAgICAgICAgICAgIGtsYXNzID0gY1N0cmluZ0lPLlN0cmluZ0lPCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBrbGFzcyA9IFN0cmluZ0lPLlN0cmluZ0lPCi0gICAgZWxzZToKLSAgICAg
ICAga2xhc3MgPSBpby5TdHJpbmdJTwotICAgIGlucyA9IGtsYXNzKGpzKQotICAgIG91dHMgPSBr
bGFzcygpCi0gICAgSmF2YXNjcmlwdE1pbmlmeShpbnMsIG91dHMpLm1pbmlmeSgpCi0gICAgcmV0
dXJuIG91dHMuZ2V0dmFsdWUoKQotCi0KLWNsYXNzIEphdmFzY3JpcHRNaW5pZnkob2JqZWN0KToK
LSAgICAiIiIKLSAgICBNaW5pZnkgYW4gaW5wdXQgc3RyZWFtIG9mIGphdmFzY3JpcHQsIHdyaXRp
bmcKLSAgICB0byBhbiBvdXRwdXQgc3RyZWFtCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgaW5zdHJlYW09Tm9uZSwgb3V0c3RyZWFtPU5vbmUpOgotICAgICAgICBzZWxmLmlucyA9
IGluc3RyZWFtCi0gICAgICAgIHNlbGYub3V0cyA9IG91dHN0cmVhbQotCi0gICAgZGVmIG1pbmlm
eShzZWxmLCBpbnN0cmVhbT1Ob25lLCBvdXRzdHJlYW09Tm9uZSk6Ci0gICAgICAgIGlmIGluc3Ry
ZWFtIGFuZCBvdXRzdHJlYW06Ci0gICAgICAgICAgICBzZWxmLmlucywgc2VsZi5vdXRzID0gaW5z
dHJlYW0sIG91dHN0cmVhbQotCi0gICAgICAgIHNlbGYuaXNfcmV0dXJuID0gRmFsc2UKLSAgICAg
ICAgc2VsZi5yZXR1cm5fYnVmID0gJycKLQotICAgICAgICBkZWYgd3JpdGUoY2hhcik6Ci0gICAg
ICAgICAgICAjIGFsbCBvZiB0aGlzIGlzIHRvIHN1cHBvcnQgbGl0ZXJhbCByZWd1bGFyIGV4cHJl
c3Npb25zLgotICAgICAgICAgICAgIyBzaWdoCi0gICAgICAgICAgICBpZiBjaGFyIGluICdyZXR1
cm4nOgotICAgICAgICAgICAgICAgIHNlbGYucmV0dXJuX2J1ZiArPSBjaGFyCi0gICAgICAgICAg
ICAgICAgc2VsZi5pc19yZXR1cm4gPSBzZWxmLnJldHVybl9idWYgPT0gJ3JldHVybicKLSAgICAg
ICAgICAgIHNlbGYub3V0cy53cml0ZShjaGFyKQotICAgICAgICAgICAgaWYgc2VsZi5pc19yZXR1
cm46Ci0gICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5fYnVmID0gJycKLQotICAgICAgICByZWFk
ID0gc2VsZi5pbnMucmVhZAotCi0gICAgICAgIHNwYWNlX3N0cmluZ3MgPSAiYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiXAotICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIz
NDU2Nzg5XyRcXCIKLSAgICAgICAgc3RhcnRlcnMsIGVuZGVycyA9ICd7WygrLScsICd9XSkrLSJc
JycKLSAgICAgICAgbmV3bGluZXN0YXJ0X3N0cmluZ3MgPSBzdGFydGVycyArIHNwYWNlX3N0cmlu
Z3MKLSAgICAgICAgbmV3bGluZWVuZF9zdHJpbmdzID0gZW5kZXJzICsgc3BhY2Vfc3RyaW5ncwot
ICAgICAgICBkb19uZXdsaW5lID0gRmFsc2UKLSAgICAgICAgZG9fc3BhY2UgPSBGYWxzZQotICAg
ICAgICBlc2NhcGVfc2xhc2hfY291bnQgPSAwCi0gICAgICAgIGRvaW5nX3NpbmdsZV9jb21tZW50
ID0gRmFsc2UKLSAgICAgICAgcHJldmlvdXNfYmVmb3JlX2NvbW1lbnQgPSAnJwotICAgICAgICBk
b2luZ19tdWx0aV9jb21tZW50ID0gRmFsc2UKLSAgICAgICAgaW5fcmUgPSBGYWxzZQotICAgICAg
ICBpbl9xdW90ZSA9ICcnCi0gICAgICAgIHF1b3RlX2J1ZiA9IFtdCi0KLSAgICAgICAgcHJldmlv
dXMgPSByZWFkKDEpCi0gICAgICAgIGlmIHByZXZpb3VzID09ICdcXCc6Ci0gICAgICAgICAgICBl
c2NhcGVfc2xhc2hfY291bnQgKz0gMQotICAgICAgICBuZXh0MSA9IHJlYWQoMSkKLSAgICAgICAg
aWYgcHJldmlvdXMgPT0gJy8nOgotICAgICAgICAgICAgaWYgbmV4dDEgPT0gJy8nOgotICAgICAg
ICAgICAgICAgIGRvaW5nX3NpbmdsZV9jb21tZW50ID0gVHJ1ZQotICAgICAgICAgICAgZWxpZiBu
ZXh0MSA9PSAnKic6Ci0gICAgICAgICAgICAgICAgZG9pbmdfbXVsdGlfY29tbWVudCA9IFRydWUK
LSAgICAgICAgICAgICAgICBwcmV2aW91cyA9IG5leHQxCi0gICAgICAgICAgICAgICAgbmV4dDEg
PSByZWFkKDEpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHdyaXRlKHByZXZp
b3VzKQotICAgICAgICBlbGlmIG5vdCBwcmV2aW91czoKLSAgICAgICAgICAgIHJldHVybgotICAg
ICAgICBlbGlmIHByZXZpb3VzID49ICchJzoKLSAgICAgICAgICAgIGlmIHByZXZpb3VzIGluICIn
XCIiOgotICAgICAgICAgICAgICAgIGluX3F1b3RlID0gcHJldmlvdXMKLSAgICAgICAgICAgIHdy
aXRlKHByZXZpb3VzKQotICAgICAgICAgICAgcHJldmlvdXNfbm9uX3NwYWNlID0gcHJldmlvdXMK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByZXZpb3VzX25vbl9zcGFjZSA9ICcgJwotICAg
ICAgICBpZiBub3QgbmV4dDE6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICB3aGlsZSAx
OgotICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEpCi0gICAgICAgICAgICBpZiBub3QgbmV4dDI6
Ci0gICAgICAgICAgICAgICAgbGFzdCA9IG5leHQxLnN0cmlwKCkKLSAgICAgICAgICAgICAgICBp
ZiBub3QgKGRvaW5nX3NpbmdsZV9jb21tZW50IG9yIGRvaW5nX211bHRpX2NvbW1lbnQpXAotICAg
ICAgICAgICAgICAgICAgICBhbmQgbGFzdCBub3QgaW4gKCcnLCAnLycpOgotICAgICAgICAgICAg
ICAgICAgICBpZiBpbl9xdW90ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKCcnLmpv
aW4ocXVvdGVfYnVmKSkKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUobGFzdCkKLSAgICAgICAg
ICAgICAgICBicmVhawotICAgICAgICAgICAgaWYgZG9pbmdfbXVsdGlfY29tbWVudDoKLSAgICAg
ICAgICAgICAgICBpZiBuZXh0MSA9PSAnKicgYW5kIG5leHQyID09ICcvJzoKLSAgICAgICAgICAg
ICAgICAgICAgZG9pbmdfbXVsdGlfY29tbWVudCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgICAg
IG5leHQyID0gcmVhZCgxKQotICAgICAgICAgICAgZWxpZiBkb2luZ19zaW5nbGVfY29tbWVudDoK
LSAgICAgICAgICAgICAgICBpZiBuZXh0MSBpbiAnXHJcbic6Ci0gICAgICAgICAgICAgICAgICAg
IGRvaW5nX3NpbmdsZV9jb21tZW50ID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUg
bmV4dDIgaW4gJ1xyXG4nOgotICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDIgPSByZWFkKDEp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgbmV4dDI6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgaWYgcHJldmlvdXNfYmVmb3Jl
X2NvbW1lbnQgaW4gJyl9XSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb19uZXdsaW5lID0g
VHJ1ZQotICAgICAgICAgICAgICAgICAgICBlbGlmIHByZXZpb3VzX2JlZm9yZV9jb21tZW50IGlu
IHNwYWNlX3N0cmluZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSgnXG4nKQotICAg
ICAgICAgICAgZWxpZiBpbl9xdW90ZToKLSAgICAgICAgICAgICAgICBxdW90ZV9idWYuYXBwZW5k
KG5leHQxKQotCi0gICAgICAgICAgICAgICAgaWYgbmV4dDEgPT0gaW5fcXVvdGU6Ci0gICAgICAg
ICAgICAgICAgICAgIG51bXNsYXNoZXMgPSAwCi0gICAgICAgICAgICAgICAgICAgIGZvciBjIGlu
IHJldmVyc2VkKHF1b3RlX2J1Zls6LTFdKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGMg
IT0gJ1xcJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1zbGFzaGVz
ICs9IDEKLSAgICAgICAgICAgICAgICAgICAgaWYgbnVtc2xhc2hlcyAlIDIgPT0gMDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGluX3F1b3RlID0gJycKLSAgICAgICAgICAgICAgICAgICAgICAg
IHdyaXRlKCcnLmpvaW4ocXVvdGVfYnVmKSkKLSAgICAgICAgICAgIGVsaWYgbmV4dDEgaW4gJ1xy
XG4nOgotICAgICAgICAgICAgICAgIGlmIHByZXZpb3VzX25vbl9zcGFjZSBpbiBuZXdsaW5lZW5k
X3N0cmluZ3MgXAotICAgICAgICAgICAgICAgICAgICBvciBwcmV2aW91c19ub25fc3BhY2UgPiAn
fic6Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiBuZXh0MiA8ICchJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0MiA9IHJl
YWQoMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgbmV4dDI6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5leHQyIGluIG5ld2xpbmVzdGFy
dF9zdHJpbmdzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgbmV4dDIgPiAn
ficgb3IgbmV4dDIgPT0gJy8nOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb19u
ZXdsaW5lID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAg
ICAgICBlbGlmIG5leHQxIDwgJyEnIGFuZCBub3QgaW5fcmU6Ci0gICAgICAgICAgICAgICAgaWYg
KHByZXZpb3VzX25vbl9zcGFjZSBpbiBzcGFjZV9zdHJpbmdzIFwKLSAgICAgICAgICAgICAgICAg
ICAgb3IgcHJldmlvdXNfbm9uX3NwYWNlID4gJ34nKSBcCi0gICAgICAgICAgICAgICAgICAgIGFu
ZCAobmV4dDIgaW4gc3BhY2Vfc3RyaW5ncyBvciBuZXh0MiA+ICd+Jyk6Ci0gICAgICAgICAgICAg
ICAgICAgIGRvX3NwYWNlID0gVHJ1ZQotICAgICAgICAgICAgICAgIGVsaWYgcHJldmlvdXNfbm9u
X3NwYWNlIGluICctKycgYW5kIG5leHQyID09IHByZXZpb3VzX25vbl9zcGFjZToKLSAgICAgICAg
ICAgICAgICAgICAgIyBwcm90ZWN0IGFnYWluc3QgKyArKyBvciAtIC0tIHNlcXVlbmNlcwotICAg
ICAgICAgICAgICAgICAgICBkb19zcGFjZSA9IFRydWUKLSAgICAgICAgICAgICAgICBlbGlmIHNl
bGYuaXNfcmV0dXJuIGFuZCBuZXh0MiA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgICAgICMgcmV0
dXJuaW5nIGEgcmVnZXguLi4KLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQotICAgICAg
ICAgICAgZWxpZiBuZXh0MSA9PSAnLyc6Ci0gICAgICAgICAgICAgICAgaWYgZG9fc3BhY2U6Ci0g
ICAgICAgICAgICAgICAgICAgIHdyaXRlKCcgJykKLSAgICAgICAgICAgICAgICBpZiBpbl9yZToK
LSAgICAgICAgICAgICAgICAgICAgaWYgcHJldmlvdXMgIT0gJ1xcJyBvciAobm90IGVzY2FwZV9z
bGFzaF9jb3VudCAlIDIpIG9yIG5leHQyIGluICdnaW15JzoKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGluX3JlID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJy8nKQotICAgICAg
ICAgICAgICAgIGVsaWYgbmV4dDIgPT0gJy8nOgotICAgICAgICAgICAgICAgICAgICBkb2luZ19z
aW5nbGVfY29tbWVudCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfYmVmb3Jl
X2NvbW1lbnQgPSBwcmV2aW91c19ub25fc3BhY2UKLSAgICAgICAgICAgICAgICBlbGlmIG5leHQy
ID09ICcqJzoKLSAgICAgICAgICAgICAgICAgICAgZG9pbmdfbXVsdGlfY29tbWVudCA9IFRydWUK
LSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXMgPSBuZXh0MQotICAgICAgICAgICAgICAgICAg
ICBuZXh0MSA9IG5leHQyCi0gICAgICAgICAgICAgICAgICAgIG5leHQyID0gcmVhZCgxKQotICAg
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGluX3JlID0gcHJldmlvdXNf
bm9uX3NwYWNlIGluICcoLD06Wz8hJnwnIG9yIHNlbGYuaXNfcmV0dXJuICAjIGxpdGVyYWwgcmVn
dWxhciBleHByZXNzaW9uCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlKCcvJykKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgZG9fc3BhY2U6Ci0gICAgICAgICAgICAgICAg
ICAgIGRvX3NwYWNlID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoJyAnKQotICAg
ICAgICAgICAgICAgIGlmIGRvX25ld2xpbmU6Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlKCdc
bicpCi0gICAgICAgICAgICAgICAgICAgIGRvX25ld2xpbmUgPSBGYWxzZQotCi0gICAgICAgICAg
ICAgICAgd3JpdGUobmV4dDEpCi0gICAgICAgICAgICAgICAgaWYgbm90IGluX3JlIGFuZCBuZXh0
MSBpbiAiJ1wiIjoKLSAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGUgPSBuZXh0MQotICAgICAg
ICAgICAgICAgICAgICBxdW90ZV9idWYgPSBbXQotCi0gICAgICAgICAgICBwcmV2aW91cyA9IG5l
eHQxCi0gICAgICAgICAgICBuZXh0MSA9IG5leHQyCi0KLSAgICAgICAgICAgIGlmIHByZXZpb3Vz
ID49ICchJzoKLSAgICAgICAgICAgICAgICBwcmV2aW91c19ub25fc3BhY2UgPSBwcmV2aW91cwot
Ci0gICAgICAgICAgICBpZiBwcmV2aW91cyA9PSAnXFwnOgotICAgICAgICAgICAgICAgIGVzY2Fw
ZV9zbGFzaF9jb3VudCArPSAxCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGVz
Y2FwZV9zbGFzaF9jb3VudCA9IDAKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBt
aW5pZmllciA9IEphdmFzY3JpcHRNaW5pZnkoc3lzLnN0ZGluLCBzeXMuc3Rkb3V0KQotICAgIG1p
bmlmaWVyLm1pbmlmeSgpCi0gICAgc3lzLnN0ZG91dC53cml0ZSgnXG4nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy94eGQucGwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDVlZTA4YTUyZDhlNjZjZmRhM2MwODNmN2FkYjE1Zjk2YzA4YTliMGMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3h4ZC5wbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1
ICswLDAgQEAKLSMhIC91c3IvYmluL3BlcmwKLQotIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICMgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAjIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgIyBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMKLQotJHZh
cm5hbWUgPSBzaGlmdDsKLSRmbmFtZSA9IHNoaWZ0OwotJG91dHB1dCA9IHNoaWZ0OwotCi1vcGVu
KCRpbnB1dCwgJzwnLCAkZm5hbWUpIG9yIGRpZSAiQ2FuJ3Qgb3BlbiBmaWxlIGZvciByZWFkOiAk
Zm5hbWUgJCEiOwotJC8gPSB1bmRlZjsKLSR0ZXh0ID0gPCRpbnB1dD47Ci1jbG9zZSgkaW5wdXQp
OwotCi0kdGV4dCA9IGpvaW4oJywgJywgbWFwKCcweCcgLiB1bnBhY2soIkgqIiwgJF8pLCBzcGxp
dCh1bmRlZiwgJHRleHQpKSk7Ci0KLW9wZW4oJG91dHB1dCwgJz4nLCAkb3V0cHV0KSBvciBkaWUg
IkNhbid0IG9wZW4gZmlsZSBmb3Igd3JpdGU6ICRvdXRwdXQgJCEiOwotcHJpbnQgJG91dHB1dCAi
Y29uc3QgdW5zaWduZWQgY2hhciAkdmFybmFtZVxbXF0gPSB7XG4kdGV4dFxufTtcbiI7Ci1jbG9z
ZSgkb3V0cHV0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZWEwNzM3NTg3YjY0ZWEyMWViMTAx
NzNkZWY1ODE5NjU3M2U2OWM3Mi4uZjY4NmE5MmI5ZjRkYWQwZDlmMDFlNzFiMDRiYjczYmIwYmZh
ZGU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTgyMywxNSArODIzLDEyIEBAIHNldChXZWJD
b3JlX0lETF9GSUxFUwogCiBpZiAoV0lOMzIpCiAgICAgaWYgKElOVEVSTkFMX0JVSUxEKQotICAg
ICAgICBzZXQoV2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJ
Un0vLi4vaW5jbHVkZS9wcml2YXRlL0phdmFTY3JpcHRDb3JlIikKLSAgICAgICAgc2V0KFdlYkNv
cmVfR0VORVJBVEVfSlNfQlVJTFRJTlNfU0NSSVBUU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0v
Li4vaW5jbHVkZS9wcml2YXRlL0phdmFTY3JpcHRDb3JlIikKKyAgICAgICAgc2V0KEphdmFTY3Jp
cHRDb3JlX1NDUklQVFNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9Ly4uL2luY2x1ZGUvcHJpdmF0
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzIikKICAgICBlbHNlICgpCi0gICAgICAgIHNldChXZWJD
b3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUiAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rv
ci9zY3JpcHRzIikKLSAgICAgICAgc2V0KFdlYkNvcmVfR0VORVJBVEVfSlNfQlVJTFRJTlNfU0NS
SVBUU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElSfSIpCisgICAgICAgIHNldChKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUiAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVy
cy9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzIikKICAgICBlbmRpZiAoKQogZWxzZSAoKQotICAgIHNl
dChXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUiAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2lu
c3BlY3Rvci9zY3JpcHRzIikKLSAgICBzZXQoV2ViQ29yZV9HRU5FUkFURV9KU19CVUlMVElOU19T
Q1JJUFRTX0RJUiAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9IikKKyAgICBzZXQoSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIgIiR7SkFWQVNDUklQVENPUkVfRElSfS9TY3JpcHRzIikKIGVuZGlmICgp
CiAKIHNldChXZWJDb3JlX1NPVVJDRVMKQEAgLTMzNzksMTAgKzMzNzYsMTAgQEAgV0VCS0lUX0lO
Q0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAg
T1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFn
ZS5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5j
b21iaW5lZC5odG1sCiAgICAgTUFJTl9ERVBFTkRFTkNZIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5UGFnZS5odG1sCi0gICAgREVQRU5EUyAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElS
fS94eGQucGwgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0vaW5saW5lLWFuZC1taW5p
Znktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkKKyAgICBERVBFTkRTICR7SmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVJ9L3h4ZC5wbCAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9pbmxp
bmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weQogICAgIERFUEVORFMgaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXlQYWdlLmNzcyBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eVBhZ2UuanMKLSAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQ
RUNUT1JfU0NSSVBUU19ESVJ9L2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3Jp
cHRzLnB5ICR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFnZS5odG1s
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21i
aW5lZC5odG1sCi0gICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BF
Q1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBsIEluc3BlY3Rvck92ZXJsYXlQYWdlX2h0bWwgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3Rvck92ZXJsYXlQYWdlLmNvbWJpbmVkLmh0
bWwgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3Rvck92ZXJsYXlQYWdlLmgK
KyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBU
U19ESVJ9L2lubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICR7V0VC
Q09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5UGFnZS5odG1sICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5odG1sCisg
ICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJ
Un0veHhkLnBsIEluc3BlY3Rvck92ZXJsYXlQYWdlX2h0bWwgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L0luc3BlY3Rvck92ZXJsYXlQYWdlLmNvbWJpbmVkLmh0bWwgJHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3Rvck92ZXJsYXlQYWdlLmgKICAgICBWRVJCQVRJTSkK
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaCkKIApAQCAtMzM5MSwxMCArMzM4OCwxMCBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0lu
c3BlY3Rvck92ZXJsYXlQYWdlLgogYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIE9VVFBVVCAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaCAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2Uu
bWluLmpzCiAgICAgTUFJTl9ERVBFTkRFTkNZIGluc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVs
ZVNvdXJjZS5qcwotICAgIERFUEVORFMgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0v
eHhkLnBsICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2pzbWluLnB5CisgICAgREVQ
RU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS94eGQucGwgJHtKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUn0vanNtaW4ucHkKICAgICBDT01NQU5EIGVjaG8gIi8vIyBzb3VyY2VVUkw9
X19XZWJJbnNwZWN0b3JDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZV9fIiA+ICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4uanMKLSAg
ICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBU
U19ESVJ9L2pzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJ
TW9kdWxlU291cmNlLmpzID4+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Db21tYW5k
TGluZUFQSU1vZHVsZVNvdXJjZS5taW4uanMKLSAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxF
fSAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS94eGQucGwgQ29tbWFuZExpbmVBUElN
b2R1bGVTb3VyY2VfanMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbW1hbmRMaW5l
QVBJTW9kdWxlU291cmNlLm1pbi5qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ29t
bWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJM
RX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vanNtaW4ucHkgPCAke1dFQkNPUkVfRElS
fS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMgPj4gJHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcworICAg
IENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9
L3h4ZC5wbCBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZV9qcyAke0RFUklWRURfU09VUkNFU19X
RUJDT1JFX0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UubWluLmpzICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oCiAgICAgVkVS
QkFUSU0pCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmgpCiAKQEAgLTM0MDcsOSArMzQw
NCw5IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vQ29sb3JEYXRhLmNwcCkKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQg
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlckNTUy5oICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmNzcwogICAgIE1BSU5fREVQRU5ERU5D
WSB4bWwvWE1MVmlld2VyLmNzcwotICAgIERFUEVORFMgJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJ
UFRTX0RJUn0veHhkLnBsICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2Nzc21pbi5w
eQotICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9T
Q1JJUFRTX0RJUn0vY3NzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0veG1sL1hNTFZpZXdlci5jc3Mg
PiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyLm1pbi5jc3MKLSAgICBD
T01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElS
fS94eGQucGwgWE1MVmlld2VyX2NzcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1M
Vmlld2VyLm1pbi5jc3MgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hNTFZpZXdlckNT
Uy5oCisgICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS94eGQucGwgJHtK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vY3NzbWluLnB5CisgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9jc3NtaW4ucHkgPCAk
e1dFQkNPUkVfRElSfS94bWwvWE1MVmlld2VyLmNzcyA+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9YTUxWaWV3ZXIubWluLmNzcworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9
ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L3h4ZC5wbCBYTUxWaWV3ZXJfY3NzICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmNzcyAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyQ1NTLmgKICAgICBWRVJCQVRJTSkKIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmll
d2VyQ1NTLmgpCiAKQEAgLTM0MTgsOSArMzQxNSw5IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyQ1NTLmgpCiBhZGRf
Y3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9YTUxWaWV3ZXJKUy5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIu
bWluLmpzCiAgICAgTUFJTl9ERVBFTkRFTkNZIHhtbC9YTUxWaWV3ZXIuanMKLSAgICBERVBFTkRT
ICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L3h4ZC5wbCAke1dlYkNvcmVfSU5TUEVD
VE9SX1NDUklQVFNfRElSfS9qc21pbi5weQotICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJM
RX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0vanNtaW4ucHkgPCAke1dFQkNPUkVf
RElSfS94bWwvWE1MVmlld2VyLmpzID4gJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hN
TFZpZXdlci5taW4uanMKLSAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dlYkNvcmVf
SU5TUEVDVE9SX1NDUklQVFNfRElSfS94eGQucGwgWE1MVmlld2VyX2pzICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9YTUxWaWV3ZXJKUy5oCisgICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX1NDUklQ
VFNfRElSfS94eGQucGwgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vanNtaW4ucHkKKyAg
ICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVJ9L2pzbWluLnB5IDwgJHtXRUJDT1JFX0RJUn0veG1sL1hNTFZpZXdlci5qcyA+ICR7REVSSVZF
RF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YTUxWaWV3ZXIubWluLmpzCisgICAgQ09NTUFORCAke1BF
UkxfRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0veHhkLnBsIFhNTFZp
ZXdlcl9qcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VyLm1pbi5qcyAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWE1MVmlld2VySlMuaAogICAgIFZFUkJBVElN
KQogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVf
RElSfS9YTUxWaWV3ZXJKUy5oKQogCkBAIC0zNTEwLDcgKzM1MDcsNyBAQCBpZiAoV2ViQ29yZV9V
U0VSX0FHRU5UX1NDUklQVFMpCiAgICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vVXNlckFnZW50U2NyaXB0c0RhdGEuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9Vc2VyQWdlbnRTY3JpcHRzLmgKICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VC
Q09SRV9ESVJ9L1NjcmlwdHMvbWFrZS1qcy1maWxlLWFycmF5cy5weQogICAgICAgICBERVBFTkRT
ICR7V2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFN9Ci0gICAgICAgIENPTU1BTkQgIlBZVEhPTlBB
VEg9JHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0iICR7UFlUSE9OX0VYRUNVVEFCTEV9
ICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvbWFrZS1qcy1maWxlLWFycmF5cy5weSAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vVXNlckFnZW50U2NyaXB0cy5oICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9Vc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHAgJHtXZWJDb3JlX1VTRVJfQUdF
TlRfU0NSSVBUU30KKyAgICAgICAgQ09NTUFORCAiUFlUSE9OUEFUSD0ke0phdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSfSIgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vU2NyaXB0
cy9tYWtlLWpzLWZpbGUtYXJyYXlzLnB5ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9V
c2VyQWdlbnRTY3JpcHRzLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1VzZXJBZ2Vu
dFNjcmlwdHNEYXRhLmNwcCAke1dlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRTfQogICAgICAgICBW
RVJCQVRJTSkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L1VzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCkKICAgICBBRERfU09VUkNF
X1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXZWJDb3JlX1VTRVJfQUdFTlRfU0NSSVBU
U19ERVBFTkRFTkNJRVN9IFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCBVc2VyQWdlbnRTY3JpcHRz
LmgpCkBAIC0zNjAyLDkgKzM1OTksOSBAQCBmb3JlYWNoIChfYnVpbHRpbmpzICR7V0VCQ09SRV9K
U19CVUlMVElOU30pCiAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgICAgICBPVVRQVVQgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnNXcmFwcGVyLmggJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuaCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5jcHAKICAgICAgICAgTUFJTl9E
RVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCi0gICAgICAgIERF
UEVORFMgJHtXZWJDb3JlX0dFTkVSQVRFX0pTX0JVSUxUSU5TX1NDUklQVFNfRElSfS9nZW5lcmF0
ZS1qcy1idWlsdGlucworICAgICAgICBERVBFTkRTICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCiAgICAgICAgIERFUEVORFMgJHtfYnVpbHRpbmpzfQot
ICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICR7X2J1aWx0aW5qc30gLS1vdXRw
dXRfZGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAtLWdlbmVyYXRlX2pzX2J1aWx0
aW5zX3BhdGggJHtXZWJDb3JlX0dFTkVSQVRFX0pTX0JVSUxUSU5TX1NDUklQVFNfRElSfQorICAg
ICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICR7X2J1aWx0aW5qc30gLS1vdXRwdXRf
ZGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAtLWdlbmVyYXRlX2pzX2J1aWx0aW5z
X3BhdGggJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0KICAgICAgICAgVkVSQkFUSU0pCiAg
ICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgICAgICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IDNjNWY4NWZiODgyMzc3N2UzNmM1MWFhNWRlNjg1MTAzODM2MzQ2MjUuLjRjMzJm
NzIxOGNlNjQxN2Q0YTRlZGY3Zjc4NDcxYzNhODE1MTE4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtODk5LDggKzg5OSw4IEBAIFNlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVN
YXAuY3BwIDogJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAuCiBh
bGwgOiBYTUxWaWV3ZXJDU1MuaAogCiBYTUxWaWV3ZXJDU1MuaCA6IHhtbC9YTUxWaWV3ZXIuY3Nz
Ci0JJChQWVRIT04pICQoSW5zcGVjdG9yU2NyaXB0cykvY3NzbWluLnB5IDwiJChXZWJDb3JlKS94
bWwvWE1MVmlld2VyLmNzcyIgPiAuL1hNTFZpZXdlci5taW4uY3NzCi0JJChQRVJMKSAkKEluc3Bl
Y3RvclNjcmlwdHMpL3h4ZC5wbCBYTUxWaWV3ZXJfY3NzIC4vWE1MVmlld2VyLm1pbi5jc3MgWE1M
Vmlld2VyQ1NTLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvY3Nz
bWluLnB5IDwiJChXZWJDb3JlKS94bWwvWE1MVmlld2VyLmNzcyIgPiAuL1hNTFZpZXdlci5taW4u
Y3NzCisJJChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS94eGQucGwgWE1MVmll
d2VyX2NzcyAuL1hNTFZpZXdlci5taW4uY3NzIFhNTFZpZXdlckNTUy5oCiAJJChERUxFVEUpIFhN
TFZpZXdlci5taW4uY3NzCiAKICMgLS0tLS0tLS0KQEAgLTkxMCw4ICs5MTAsOCBAQCBYTUxWaWV3
ZXJDU1MuaCA6IHhtbC9YTUxWaWV3ZXIuY3NzCiBhbGwgOiBYTUxWaWV3ZXJKUy5oCiAKIFhNTFZp
ZXdlckpTLmggOiB4bWwvWE1MVmlld2VyLmpzCi0JJChQWVRIT04pICQoSW5zcGVjdG9yU2NyaXB0
cykvanNtaW4ucHkgPCIkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuanMiID4gLi9YTUxWaWV3ZXIu
bWluLmpzCi0JJChQRVJMKSAkKEluc3BlY3RvclNjcmlwdHMpL3h4ZC5wbCBYTUxWaWV3ZXJfanMg
Li9YTUxWaWV3ZXIubWluLmpzIFhNTFZpZXdlckpTLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUikvanNtaW4ucHkgPCIkKFdlYkNvcmUpL3htbC9YTUxWaWV3ZXIuanMi
ID4gLi9YTUxWaWV3ZXIubWluLmpzCisJJChQRVJMKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNf
RElSKS94eGQucGwgWE1MVmlld2VyX2pzIC4vWE1MVmlld2VyLm1pbi5qcyBYTUxWaWV3ZXJKUy5o
CiAJJChERUxFVEUpIFhNTFZpZXdlci5taW4uanMKIAogIyAtLS0tLS0tLQpAQCAtMTAwNSw3ICsx
MDA1LDcgQEAgaWZkZWYgVVNFUl9BR0VOVF9TQ1JJUFRTCiBhbGwgOiBVc2VyQWdlbnRTY3JpcHRz
LmgKIAogVXNlckFnZW50U2NyaXB0cy5oIDogU2NyaXB0cy9tYWtlLWpzLWZpbGUtYXJyYXlzLnB5
ICQoVVNFUl9BR0VOVF9TQ1JJUFRTKQotCVBZVEhPTlBBVEg9JChJbnNwZWN0b3JTY3JpcHRzKSAk
KFBZVEhPTikgJDwgJEAgVXNlckFnZW50U2NyaXB0c0RhdGEuY3BwICQoVVNFUl9BR0VOVF9TQ1JJ
UFRTKQorCVBZVEhPTlBBVEg9JChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikgJChQWVRIT04p
ICQ8ICRAIFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCAkKFVTRVJfQUdFTlRfU0NSSVBUUykKIGVu
ZGlmCiAKICMgLS0tLS0tLS0KQEAgLTEyMjEsMzQgKzEyMjEsMzQgQEAgSlMlLmggOiAlLmlkbCAk
KEpTX0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChXSU5ET1dfQ09O
U1RSVUNUT1IKIGFsbCA6IEluc3BlY3Rvck92ZXJsYXlQYWdlLmgKIAogSW5zcGVjdG9yT3Zlcmxh
eVBhZ2UuaCA6IEluc3BlY3Rvck92ZXJsYXlQYWdlLmh0bWwgSW5zcGVjdG9yT3ZlcmxheVBhZ2Uu
Y3NzIEluc3BlY3Rvck92ZXJsYXlQYWdlLmpzCi0JJChQWVRIT04pICQoSW5zcGVjdG9yU2NyaXB0
cykvaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgJChXZWJDb3Jl
KS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAuL0luc3BlY3Rvck92ZXJsYXlQ
YWdlLmNvbWJpbmVkLmh0bWwKLQkkKFBFUkwpICQoSW5zcGVjdG9yU2NyaXB0cykveHhkLnBsIElu
c3BlY3Rvck92ZXJsYXlQYWdlX2h0bWwgLi9JbnNwZWN0b3JPdmVybGF5UGFnZS5jb21iaW5lZC5o
dG1sIEluc3BlY3Rvck92ZXJsYXlQYWdlLmgKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUikvaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkg
JChXZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAuL0luc3BlY3Rv
ck92ZXJsYXlQYWdlLmNvbWJpbmVkLmh0bWwKKwkkKFBFUkwpICQoSmF2YVNjcmlwdENvcmVfU0NS
SVBUU19ESVIpL3h4ZC5wbCBJbnNwZWN0b3JPdmVybGF5UGFnZV9odG1sIC4vSW5zcGVjdG9yT3Zl
cmxheVBhZ2UuY29tYmluZWQuaHRtbCBJbnNwZWN0b3JPdmVybGF5UGFnZS5oCiAJJChERUxFVEUp
IEluc3BlY3Rvck92ZXJsYXlQYWdlLmNvbWJpbmVkLmh0bWwKIAogYWxsIDogQ29tbWFuZExpbmVB
UElNb2R1bGVTb3VyY2UuaAogCiBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oIDogQ29tbWFu
ZExpbmVBUElNb2R1bGVTb3VyY2UuanMKIAllY2hvICIvLyMgc291cmNlVVJMPV9fV2ViSW5zcGVj
dG9yQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2VfXyIgPiAuL0NvbW1hbmRMaW5lQVBJTW9kdWxl
U291cmNlLm1pbi5qcwotCSQoUFlUSE9OKSAkKEluc3BlY3RvclNjcmlwdHMpL2pzbWluLnB5IDwk
KFdlYkNvcmUpL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5qcyA+PiAuL0Nv
bW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcwotCSQoUEVSTCkgJChJbnNwZWN0b3JTY3Jp
cHRzKS94eGQucGwgQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2VfanMgLi9Db21tYW5kTGluZUFQ
SU1vZHVsZVNvdXJjZS5taW4uanMgQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaAorCSQoUFlU
SE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9qc21pbi5weSA8JChXZWJDb3JlKS9p
bnNwZWN0b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMgPj4gLi9Db21tYW5kTGluZUFQ
SU1vZHVsZVNvdXJjZS5taW4uanMKKwkkKFBFUkwpICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVIpL3h4ZC5wbCBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZV9qcyAuL0NvbW1hbmRMaW5lQVBJ
TW9kdWxlU291cmNlLm1pbi5qcyBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oCiAJJChERUxF
VEUpIENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLm1pbi5qcwogCiAjIFdlYiBSZXBsYXkgaW5w
dXRzIGdlbmVyYXRvcgogCiBJTlBVVF9HRU5FUkFUT1JfU0NSSVBUUyA9IFwKLSAgICAkKFdlYlJl
cGxheVNjcmlwdHMpL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkgXAotICAgICQoV2ViUmVw
bGF5U2NyaXB0cykvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5weSBcCisgICAg
JChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5w
eSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvQ29kZUdlbmVyYXRvclJlcGxh
eUlucHV0c1RlbXBsYXRlcy5weSBcCiAjCiAKIElOUFVUX0dFTkVSQVRPUl9TUEVDSUZJQ0FUSU9O
UyA9IFwKIAkkKFdlYkNvcmUpL3JlcGxheS9XZWJJbnB1dHMuanNvbiBcCi0JJChXZWJSZXBsYXlT
Y3JpcHRzKS9KU0lucHV0cy5qc29uIFwKKwkkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9K
U0lucHV0cy5qc29uIFwKICMKIAogYWxsIDogV2ViUmVwbGF5SW5wdXRzLmgKIAogV2ViUmVwbGF5
SW5wdXRzLmggOiAkKElOUFVUX0dFTkVSQVRPUl9TUEVDSUZJQ0FUSU9OUykgJChJTlBVVF9HRU5F
UkFUT1JfU0NSSVBUUykKLQkkKFBZVEhPTikgJChXZWJSZXBsYXlTY3JpcHRzKS9Db2RlR2VuZXJh
dG9yUmVwbGF5SW5wdXRzLnB5IC0tb3V0cHV0RGlyIC4gLS1mcmFtZXdvcmsgV2ViQ29yZSAkKElO
UFVUX0dFTkVSQVRPUl9TUEVDSUZJQ0FUSU9OUykKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUikvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSAtLW91dHB1dERpciAu
IC0tZnJhbWV3b3JrIFdlYkNvcmUgJChJTlBVVF9HRU5FUkFUT1JfU1BFQ0lGSUNBVElPTlMpCiAK
IC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIApAQCAtMTI2OCw3ICsxMjY4LDcg
QEAgV0VCQ09SRV9KU19CVUlMVElOUyA9IFwKIGFsbCA6ICQoV0VCQ09SRV9KU19CVUlMVElOUzol
LmpzPSVCdWlsdGlucy5jcHApCiAKICVCdWlsdGlucy5jcHA6ICUuanMKLQkkKFBZVEhPTikgJChX
ZWJDb3JlKS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICQ8IC0tZ2VuZXJhdGVfanNfYnVp
bHRpbnNfcGF0aCAkKEdlbmVyYXRlSlNCdWlsdGluc1NjcmlwdHMpCisJJChQWVRIT04pICQoV2Vi
Q29yZSkvZ2VuZXJhdGUtanMtYnVpbHRpbnMgLS1pbnB1dCAkPCAtLWdlbmVyYXRlX2pzX2J1aWx0
aW5zX3BhdGggJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikKIAogIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGJmMGZlNjU4MzVjN2U5NjZiNzU4MGFiYjM4ZGYyMzZlYjZkZThl
ODkuLjNjNjMzM2YyOGNmZThjMjk2NGQ4YmU0ZGNjMjcwMDg1M2U1YzNhYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MjMz
LDcgKzI4MjMzLDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJta2Rp
ciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlXCJcbmNk
IFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmVcIlxuXG4vYmlu
L2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV2ViQ29yZVxuZXhwb3J0IFdlYkNvcmU9XCJXZWJDb3Jl
XCJcbmV4cG9ydCBJbnNwZWN0b3JTY3JpcHRzPVwiJHtKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hF
QURFUlNfRElSfVwiXG5leHBvcnQgV2ViUmVwbGF5U2NyaXB0cz1cIiR7SkFWQVNDUklQVENPUkVf
UFJJVkFURV9IRUFERVJTX0RJUn1cIlxuZXhwb3J0IEdlbmVyYXRlSlNCdWlsdGluc1NjcmlwdHM9
XCIke0pBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJ9XCJcblxuaWYgWyAhICRDQyBd
OyB0aGVuXG4gICAgZXhwb3J0IENDPVwiYHhjcnVuIC1maW5kIGNsYW5nYFwiXG5maVxuXG5pZiBb
ICEgJEdQRVJGIF07IHRoZW5cbiAgICBleHBvcnQgR1BFUkY9XCJgeGNydW4gLWZpbmQgZ3BlcmZg
XCJcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwi
ID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiBdOyB0aGVu
XG4gICAgbWFrZSAgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwi
JHtTREtST09UfVwiXG5maVxuIjsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmVcIlxuY2QgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZVwiXG5cbi9iaW4vbG4gLXNmaCBcIiR7
U1JDUk9PVH1cIiBXZWJDb3JlXG5leHBvcnQgV2ViQ29yZT1cIldlYkNvcmVcIlxuZXhwb3J0IEph
dmFTY3JpcHRDb3JlX1NDUklQVFNfRElSPVwiJHtKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURF
UlNfRElSfVwiXG5cbmlmIFsgISAkQ0MgXTsgdGhlblxuICAgIGV4cG9ydCBDQz1cImB4Y3J1biAt
ZmluZCBjbGFuZ2BcIlxuZmlcblxuaWYgWyAhICRHUEVSRiBdOyB0aGVuXG4gICAgZXhwb3J0IEdQ
RVJGPVwiYHhjcnVuIC1maW5kIGdwZXJmYFwiXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBc
ImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxoZHJzXCIgXTsgdGhlblxuICAgIG1ha2UgIC0tbm8tYnVpbHRpbi1ydWxlcyAt
ZiBcIldlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1u
IGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmlcbiI7CiAJCX07CiAvKiBF
bmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAo=
</data>
<flag name="review"
          id="288640"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>